【SSM_Mybatis】学习笔记02

时间:2019-01-23
本文章向大家介绍【SSM_Mybatis】学习笔记02,主要包括【SSM_Mybatis】学习笔记02使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

三、Mybatis架构图(图来自www.siki.com的学习资料)

四、mybatis官网 http://www.mybatis.org/mybatis-3/

1、下载Mybatis,创建项目、导包

 

2、准备数据库、测试用例

import java.util.Date;

/**
 * CREATE TABLE `user` (
  `u_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `u_username` varchar(64) NOT NULL COMMENT '用户名',
  `u_password` varchar(64) DEFAULT NULL COMMENT '用户密码',
  `u_sex` varchar(16) DEFAULT NULL COMMENT '用户性别',
  `u_createTime` datetime DEFAULT NULL COMMENT '用户创建时间',
  `u_cid` int(11) DEFAULT NULL COMMENT '用户国家id',)
 *
 */
public class User {
	private Integer u_id;
	private String u_username;
	private String u_password;
	private String u_sex;
	private Date u_createTime;
	private Integer u_cid;
}

3、主配置文件、映射文件

主配置文件,添加约束已经相关配置信息:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 在集成spring不用 -->
  <environments default="development">
    <environment id="development">
    <!-- 使用JDBC管理事务 -->
      <transactionManager type="JDBC"/>
      <!-- 使用连接池连接数据库 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql//localhost:3306/ssm_mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="mapper/UserMapper.xml"/>
  </mappers>
</configuration>

映射文件,添加约束:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

4、编写一个小用例,”通过ID查询用户“。

(1)新建HelloMyBatis

步骤: //读取配置文件,使用inputStream
            //需要SqlSessionFactoryBuilder
           //生产SqlSessionFactory
          //创建SqlSession
        //操作数据库

public class HelloMyBatis {

	//通过ID查询用户
	@Test
	public void test1() throws IOException {
		
		//读取配置文件,使用inputStream
		String resource = "SqlMapperConfig.xml";
	    InputStream in = Resources.getResourceAsStream(resource);
		//需要SqlSessionFactoryBuilder
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		//生产SqlSessionFactory
		SqlSessionFactory ssf = ssfb.build(in);
		//创建SqlSession
		SqlSession sqlSession = ssf.openSession();
		//操作数据库
		//参数:一是操作的SQL语句,二是SQL语句的参数。
        User user = sqlSession.selectOne("UserMapper.selectUserById",1);
        System.out.println(user);
		
	}
    
}

(2)特别说明:这里利用Junit4测试,做法就是在方法前加上@Test注解。

(3)UserMapper.xml加上<mapper>SQL语句查询标签。

<mapper namespace="UserMapper">
	<select id="selectUserById" parameterType="Integer" resultType="com.dunka.mybatis.User">
		select * from user where u_id=#{id}
	</select>
</mapper>

注意:可以看到查询测例中的代码,用到了selectOne("这里是UserMapper.xml里的namespace+<mapper>的id",传进去的查询参数)

(4)最后附上,log4j.properties的代码,用于查看SQL查询中的DEBUG。

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

(5)结果: