(1).Mybatis简单入门:对数据库进行CRUD操作
2016-11-09 11:25
621 查看
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层ORM(Object Relational Mapping)框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和java的pojo(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
使用Mybatis操作数据库,进行CRUD操作常用步骤如下:
1.使用Eclipse创建普通java工程,src下新建folder起名lib,添加mybatis和mysql驱动的jar包;
选中包,右键,build path —> add to build path 添加到项目构建路径.
2.在MySQL数据库中创建数据库mybatis1,创建数据表users,语句如下:
添加测试数据:
查询如下:
3.在src下新建mybatis-cfg.xml配置文件,配置mybatis的配置文件,如下:
4.在包com.qcc.entity下创建实体类User,提供private属性,公有的get/set方法,以及toString()方法.
5.在包com.qcc.mapping下新建userMapper.xml文件,内容如下:
6.在mybatis-cfg.xml文件中注册userMapper.xml文件,写在configuration下的mappers标签中,此时mybatis的配置文件完整内容如下:
7.为方便后续操作数据库,在包com.qcc.utils中新建一个工具类MybatisUtils,在里面进行读取mybatis-cfg.xml文件,并创建SqlSessionFactory,获取SqlSession对象
8.在包com.qcc.test下新建单元测试文件TestUser:
项目的整个目录结构如下图:
至此,使用Mybatis操作数据库表进行简单的CRUD操作已经完成.
使用Mybatis操作数据库,进行CRUD操作常用步骤如下:
1.使用Eclipse创建普通java工程,src下新建folder起名lib,添加mybatis和mysql驱动的jar包;
选中包,右键,build path —> add to build path 添加到项目构建路径.
2.在MySQL数据库中创建数据库mybatis1,创建数据表users,语句如下:
create table users( id int(5) primary key auto_increment, name varchar(20), phone varchar(11), email varchar(50) ) charset=utf8
添加测试数据:
insert into users(name, phone, email) values("aa","13411111111","aa@163.com"); insert into users(name, phone, email) values("bb","13422222222","bb@163.com"); insert into users(name, phone, email) values("cc","13433333333","cc@126.com"); insert into users(name, phone, email) values("dd","13444444444","dd@126.com");
查询如下:
3.在src下新建mybatis-cfg.xml配置文件,配置mybatis的配置文件,如下:
<?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> <environments default="dev"><!-- 可以配置多个环境environment的子标签,此处必须指定一个默认的环境 --> <environment id="dev"> <transactionManager type="jdbc" /> <dataSource type="pooled"> <property name="driver" value="com.mysql.jdbc.Driver"/> <!-- 添加参数characterEncoding=utf-8解决访问数据库的乱码 --> <property name="url" value="jdbc:mysql:///mybatis1?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> </configuration>
4.在包com.qcc.entity下创建实体类User,提供private属性,公有的get/set方法,以及toString()方法.
package com.qcc.entity; public class User { private int id; private String name; private String phone; private String email; 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 String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", phone=" + phone + ", email=" + email + "]"; } }
5.在包com.qcc.mapping下新建userMapper.xml文件,内容如下:
<?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"> <!-- 为此mapper指定唯一的命名空间namespace,namespace一般设置成包名+当前sql映射的文件名,去掉后缀名 --> <mapper namespace="com.qcc.mapping.userMapper"> <!-- id值必须唯一,否则mybatis不知道你要执行重名的哪一个sql语句--> <select id="getUser" parameterType="int" resultType="com.qcc.entity.User"> select id, name, phone, email fro df4d m users where id = #{id} <!-- 用#{}来替换调用语句中传入的参数 --> </select> <select id="getAll" resultType="com.qcc.entity.User"> select id, name, phone, email from users </select> </mapper>
6.在mybatis-cfg.xml文件中注册userMapper.xml文件,写在configuration下的mappers标签中,此时mybatis的配置文件完整内容如下:
<?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> <environments default="dev"><!-- 可以配置多个环境environment的子标签,此处必须指定一个默认的环境 --> <environment id="dev"> <transactionManager type="jdbc" /> <dataSource type="pooled"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis1?characterEncoding=utf-8"/><!-- 添加参数characterEncoding=utf-8解决访问数据库的乱码 --> <property name="username" value="root"/> <property name="password" value=""/> </dataSource> </environment> </environments> <!--将映射文件在mybatis-cfg.xml中进行注册--> <mappers> <mapper resource="com/qcc/mapping/userMapper.xml"/> </mappers> </configuration>
7.为方便后续操作数据库,在包com.qcc.utils中新建一个工具类MybatisUtils,在里面进行读取mybatis-cfg.xml文件,并创建SqlSessionFactory,获取SqlSession对象
package com.qcc.utils; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class MybatisUtils { private static SqlSessionFactory sessionFactory; static { try { // 获取mybatis-cfg.xml文件对应的输入流两种方式: // InputStream is = MybatisUtils.class.getClassLoader().getResourceAsStream("mybatis-cfg.xml"); InputStream is = Resources.getResourceAsStream("mybatis-cfg.xml"); sessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (Exception e) { throw new RuntimeException("读取配置文件失败!"); } } public static SqlSession getSession(boolean autoCommit){ return sessionFactory.openSession(autoCommit); } }
8.在包com.qcc.test下新建单元测试文件TestUser:
package com.qcc.test; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import com.qcc.entity.User; import com.qcc.utils.MybatisUtils; public class TestUser { @Test public void getAll() { SqlSession session = MybatisUtils.getSession(false);//查询不涉及事务,因此传入false //参数为映射sql的标示字符串,其值为userMapper.xml文件中的namespace加上对应的sql语句的id值. List<User> userList = session.selectList("com.qcc.mapping.userMapper.getAll"); for (User user : userList) { System.out.println(user); } } @Test public void get(){ SqlSession session = MybatisUtils.getSession(false); User user = session.selectOne("com.qcc.mapping.userMapper.getUser", 1);//根据传入的id查询对应的实体对象 System.out.println(user); } @Test public void add(){ SqlSession session = MybatisUtils.getSession(true);//参数若为true则会自动提交事务 User user = new User(); user.setName("ee"); user.setPhone("13512341234"); user.setEmail("ee@qq.com"); session.insert("com.qcc.mapping.userMapper.addUser",user); } @Test public void update(){ SqlSession session = MybatisUtils.getSession(true);//参数若为true则会自动提交事务 User user = new User(); user.setId(5); user.setName("update"); user.setPhone("13588888888"); user.setEmail("ee@163.com"); session.insert("com.qcc.mapping.userMapper.updateUser",user); } @Test public void delete(){ SqlSession session = MybatisUtils.getSession(true); session.delete("com.qcc.mapping.userMapper.delUser", 5); } }
项目的整个目录结构如下图:
至此,使用Mybatis操作数据库表进行简单的CRUD操作已经完成.
相关文章推荐
- 【SSM学习笔记】Mybatis进行简单的CRUD操作
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- 使用MYSQL对数据库,表进行一些简单的CRUD操作
- MyBatis学习笔记-01.MyBatis简单入门_实现MyBatis对数据库的查询操作以及IllegalArgumentException异常问题
- Spring Boot快速入门(五):使用MyBatis(注解形式)进行数据库操作
- Mybatis环境搭建和进行简单的CRUD增删改查操作
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- 简单的三层框架以及使用dbutils进行数据库操作(入门)
- 数据库基础入门(三)——通过JDBC对数据库进行增删改查操作
- 数据库基础入门(三)——通过JDBC对数据库进行增删改查操作
- 使用MyBatis框架进行数据库的增删改查操作
- php对xml进行简单的增删改查(CRUD)操作
- Mybatis简单的操作数据库
- spring+mybatis整合后进行数据库操作的方法
- Iphone——使用SQLite3进行简单的数据库操作
- hibernate 逆向工程对数据库进行CRUD操作
- Elasticsearch简单使用系列--使用Rest API进行CRUD操作
- SpringBoot入门之简单操作数据库
- Mybatis入门到精通-利用SqlSession实现CRUD操作