MyBatis介绍:
1、MyBatis是一个持久化框架,是Apache下的顶级项目。
2、通过MyBatis的映射,半自动化的满足需求的SQL语句。
3、将SQL的输入参数自动的输入映射,也可以将查询的结果结合自动映射出java对象。
创建MyBatis的配置文件(mybatis-config.xml) 代码如下:
1、配置数据库的连接地址
2、配置映射文件
<?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="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!-- 配置映射文件 -->
<mappers>
<mapper resource="com/zking/mapper/UsersMapper.xml"></mapper>
</mappers>
</configuration>
创建映射文件(UsersMapper.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="test">
<!-- 查询所有 -->
<select id="findAll" resultType="com.zking.pojo.users">
select * from users
</select>
<!-- 条件查询 -->
<select id="findAllByName" resultType="com.zking.pojo.users" parameterType="String">
select * from users where uname=#{name}
</select>
<!-- 模糊查询 -->
<select id="findAllByName2" resultType="com.zking.pojo.users" parameterType="String">
select * from users where uname like '%${value}%'
</select>
<!-- 新增 -->
<insert id="addUsers" parameterType="com.zking.pojo.users">
insert into users(uid,uname,upwd) values(uuid(),#{uname},#{upwd})
</insert>
<!-- 自定义主键进行新增 -->
<insert id="addUsers2" parameterType="com.zking.pojo.users">
<selectKey keyProperty="uid" order="AFTER" resultType="com.zking.pojo.users">
select last_insert_id();
</selectKey>
insert into users(uid,uname,upwd) values(uuid(),#{uname},#{upwd})
</insert>
<!-- 编辑 -->
<update id="editUsers" parameterType="com.zking.pojo.users">
update users set uname=#{uname} where uid=#{uid}
</update>
<!-- 移除 -->
<delete id="removeUsers" parameterType="String">
delete from users where uid=#{id}
</delete>
<!-- 移除所有 -->
<delete id="removeAll">
delete from users
</delete>
</mapper>
实体类(users.java)
package com.zking.pojo;
import java.io.Serializable;
public class users implements Serializable {
private String uid;
private String uname;
private String upwd;
public users() {
super();
// TODO Auto-generated constructor stub
}
public users(String uid, String uname, String upwd) {
super();
this.uid = uid;
this.uname = uname;
this.upwd = upwd;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpwd() {
return upwd;
}
public void setUpwd(String upwd) {
this.upwd = upwd;
}
}
新建一个测试类进行测试(MyBatisTest.java)
首先是获取SqlSessionFactory
然后再获取SqlSession
package com.zking.temp;
import com.zking.pojo.users;
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.Test;
import java.util.List;
import java.util.UUID;
public class MyBatisTest {
@Test
public void findAll() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
List<users> lu = sqlSession.selectList("findAll");
for (users u : lu) {
System.out.println(u.getUid() + "-----" + u.getUname() + "-----" + u.getUpwd());
}
sqlSession.close();
}
@Test
public void findAllByName() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
users u = sqlSession.selectOne("findAllByName", "sasa");
System.out.println(u);
sqlSession.close();
}
@Test
public void findAllByName2() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
List<users> lu = sqlSession.selectList("findAllByName2", "a");
for (users u : lu) {
System.out.println(u);
}
sqlSession.close();
}
@Test
public void addUsers() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
users u = new users();
//u.setUid(String.valueOf(UUID.randomUUID()));
u.setUname("hh");
u.setUpwd("123");
int addUsers = sqlSession.insert("addUsers", u);
System.out.println(addUsers);
//mybatis把任何一个sql的语句当成一个单独的事务 所以需要提交
sqlSession.commit();
sqlSession.close();
}
@Test
public void addUsers2() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
users u = new users();
u.setUname("xx");
u.setUpwd("123");
int addUsers = sqlSession.insert("addUsers2", u);
System.out.println(addUsers);
System.out.println(u);
//mybatis把任何一个sql的语句当成一个单独的事务 所以需要提交
sqlSession.commit();
sqlSession.close();
}
@Test
public void editUsers() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
users u = new users();
u.setUid("123123123123123123");
u.setUname("ww");
int editUsers = sqlSession.update("editUsers", u);
System.out.println(editUsers);
//mybatis把任何一个sql的语句当成一个单独的事务 所以需要提交
sqlSession.commit();
sqlSession.close();
}
@Test
public void removeUsers() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
int removeUsers = sqlSession.delete("removeUsers", "123123123123123123");
System.out.println(removeUsers);
//mybatis把任何一个sql的语句当成一个单独的事务 所以需要提交
sqlSession.commit();
sqlSession.close();
}
@Test
public void removeAll() throws Exception {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession();
int removeUsers = sqlSession.delete("removeAll");
System.out.println(removeUsers);
//mybatis把任何一个sql的语句当成一个单独的事务 所以需要提交
sqlSession.commit();
sqlSession.close();
}
}
MyBatis基础的CRUD就介绍到这了,如有不对,请多指教。