本文共 8936 字,大约阅读时间需要 29 分钟。
CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `t_user` VALUES ('1', '李洪刚', '20', '江阳区嘉裕花园3栋四楼15#');INSERT INTO `t_user` VALUES ('2', '王云华', '30', '纳溪区大渡镇红鱼村三大队');INSERT INTO `t_user` VALUES ('3', '郑小翠', '21', '江阳区老窖花园2栋五楼15号');
4.0.0 net.zjs.mybatis MyBatisDemo 1.0-SNAPSHOT org.apache.maven.plugins maven-compiler-plugin org.mybatis mybatis 3.5.6 mysql mysql-connector-java 5.1.40 junit junit 4.13.2 log4j log4j 1.2.17
package net.zjs.mybatis.bean;/** 功能:用户实体类* 作者:zjs** */public class User { private int id; private String name; private int age; private String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + ", address='" + address + '\'' + '}'; }}
log4j.rootLogger=WARN, stdout, logfilelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.FileAppenderlog4j.appender.logfile.File=target/mybatis.loglog4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
package net.zjs.mybatis.bean;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.Reader;import java.util.List;/** * 功能:测试用户操作 */public class TestUserOperation { private SqlSession sqlSession; // SQL会话 @Before public void init() { try { // 读取MyBatis配置文件,为 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); // 基于MyBatis配置文件构建SQL会话工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); // 利用SQL会话工厂获取SQL会话 sqlSession = factory.openSession(); // 提示用户SQL会话创建成功 System.out.println("sqlSession对象已创建。"); } catch (IOException e) { e.printStackTrace(); } } /*按照编号查找*/ @Test public void testFindById() { int id = 1;//查找编号为1的用户 User user = sqlSession.selectOne("net.zjs.mybatis.mapper.UserMapper.findById", id); if (user != null) { System.out.println(user); } else { System.out.println("编号为[" + id + "]的用户未找到。"); } } /*查找全部*/ @Test public void testFindAll() { Listusers = sqlSession.selectList("net.zjs.mybatis.mapper.UserMapper.findAll"); users.forEach(user -> System.out.println(user)); } @After public void destroy() { // 关闭SQL会话 sqlSession.close(); // 提示用户SQL会话对象关闭 System.out.println("sqlSession对象已关闭。"); }}
package net.zjs.mybatis.mapper;/** 功能:用户映射器测试接口* 作者:zjs* */import net.zjs.mybatis.bean.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.Reader;import java.util.List;public class TestUserMapper { private SqlSession sqlSession; // SQL会话 private UserMapper userMapper;//用户映射器 @Before public void init() { try { // 读取MyBatis配置文件,作为字符输入流 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); // 基于MyBatis配置文件构建SQL会话工厂 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); // 利用SQL会话工厂获取SQL会话 sqlSession = factory.openSession(); //利用SQL会话获取用户映射器对象 userMapper=sqlSession.getMapper(UserMapper.class); // 提示用户SQL会话创建成功 System.out.println("sqlSession对象已创建。"); } catch (IOException e) { e.printStackTrace(); } } /*按照编号查找*/ @Test public void testFindById() { int id = 1;//查找编号为1的用户 User user = userMapper.findById(id); if (user != null) { System.out.println(user); } else { System.out.println("编号为[" + id + "]的用户未找到。"); } } /*查找全部*/ @Test public void testFindAll() { Listusers = userMapper.findAll(); users.forEach(user -> System.out.println(user)); } @After public void destroy() { // 关闭SQL会话 sqlSession.close(); // 提示用户SQL会话对象关闭 System.out.println("sqlSession对象已关闭。"); }}
在官网上看不使用MyBatis配置文件获取SQL会话对象是如何实现的,查看的时候感觉全是英语看不明白,运用翻译器翻译了一下前后的话之后我只明白了一点,感觉自己的大脑仿佛在那一刻停止转动了一样,不知道从何下手,听老师讲了之后明白了许多,并发现我当时如果转过来了我也就接近了,说到底就是自己的知识还不够,我一定会再努力提高自己的计算机英语以及专业知识。
转载地址:http://xjtki.baihongyu.com/