步骤:
- 导入MyBatis框架的核心jar包
- 配置文件
- 解析文件,让mybatis框架通过配置文件的信息去做一些行为
- 通过创建SqlSessionFactoryBuilder来解析配置文件,返回一个SqlSessionFactory对象
- 通过SqlSessionFactory对象创建SqlSession的工厂类
- SqlSession提供了增删改查的方法
mybatis-config.xml文件
<?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.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1/mybatis_db?
useUnicode=true&characterEncoding=utf8&serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
</configuration>
解析mybatis-config.xml文件,并获取SqlSessionFactory对象,java文件代码:
//读取配置文件
InputStream inputStream=Resources.getResourceAsStrean("mybatis-config.xml");
//首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象DataSource
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,该对象下提供了一系列增删改查的方法
SqlSession sqlSession=sqlSessionFactory.openSession();
提供一个User类
public class User implements Serializable {
private Integer id;
private String username;
private String password;
private String info;
public User() {
}
public User(Integer id, String username, String password, String info) {
this.id = id;
this.username = username;
this.password = password;
this.info = info;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", info='" + info + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
提供一个User类对应的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="test">
<!--查询t_user表中所有的数据-->
<select id="findAll" resultType="com.wojia.pojo.User">
SELECT * FROM t_user
</select>
<!-- 模糊查询-->
<select id="like" resultType="com.wojia.pojo.User" parameterType="String">
select * from t_user where username like #{username}
</select>
<!-- 根据id查询数据
resultType 结果集封装的类型
parameterType 传入参数的类型,可以是基本数据类型也可以是引用类型
SQL语句如何获取参数中的数据语法:#{基本类型名字任意}
-->
<select id="findById" resultType="com.wojia.pojo.User" parameterType="Integer">
select * from t_user where id=#{id}
</select>
<!-- 添加数据
parameterType如果是引用类型,那么必须是#{属性名}-->
<insert id="add" parameterType="com.wojia.pojo.User">
insert into t_user (username,password,info) values (#{username},#{password},#{info})
</insert>
<!-- 根据id删除数据-->
<delete id="del" parameterType="Integer">
delete from t_user where id=#{id}
</delete>
<!-- 根据id修改数据-->
<update id="up" parameterType="com.wojia.pojo.User">
update t_user set username=#{username},password=#{password},info=#{info} where id=#{id}
</update>
</mapper>
注册UserMapper.xml文件到MyBatis框架,在mybatis-config.xml文件中
<!--注册mapper的映射文件-->
<mappers>
<mapper resource="userMapper.xml"/>
</mappers>
测试
import com.wojia.pojo.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.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void findAll() throws IOException {
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//首先创建一个SqlSessionFactoryBuilder对象,然后解析配置文件中的内容,
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,SqlSessionFactory就类似于数据源对象 DataSource
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,该对象下就提供类一系列增删改查的方法
SqlSession sqlSession = sqlSessionFactory.openSession();
// System.out.println(sqlSession);
//查询t_user表中所有的数据
List<User> list = sqlSession.selectList("test.findAll");
// System.out.println(list);
for (User user : list) {
System.out.println(user);
}
}
@Test
public void findById() throws IOException {
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,提供增删改查的方法
SqlSession sqlSession=sqlSessionFactory.openSession();
//根据id查询
User user=sqlSession.selectOne("test.findById",1);
System.out.println(user);
}
@Test
public void add() throws IOException {
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,提供增删改查方法
SqlSession sqlSession=sqlSessionFactory.openSession();
//添加
User user=new User();
user.setUsername("zzz");
user.setPassword("123456");
user.setInfo("qqqqqq");
int insert = sqlSession.insert("test.add", user);
if (insert>0){
System.out.println("成功");
}else {
System.out.println("失败");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void del() throws IOException {
//读取配置文件
InputStream inputStream=Resources.getResourceAsStream("mybatis_config.xml");
//创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,提供增删改查方法
SqlSession sqlSession=sqlSessionFactory.openSession();
//删除
sqlSession.delete("test.del",1);
sqlSession.commit();
sqlSession.close();
}
@Test
public void up() throws IOException {
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//创建一个SqlSessionFactoryBuilder对象,解析配置文件的内容
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个真正的SqlSessionFactory对象,类似于数据源对象
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,提供增删改查方法
SqlSession sqlSession=sqlSessionFactory.openSession();
User user=new User();
user.setId(2);
user.setUsername("aa3");
user.setPassword("111");
user.setInfo("qqq");
int i = sqlSession.update("test.up", user);
if (i>0){
System.out.println("成功");
}else {
System.out.println("失败");
}
sqlSession.commit();
sqlSession.close();
}
@Test
public void like() throws IOException {
//读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis_config.xml");
//创建一个SqlSessionFactoryBuilder,解析配置文件
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
//创建一个SqlSessionFactory,类似数据源对象
SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
//创建一个SqlSession对象,提供增删改查方法
SqlSession sqlSession=sqlSessionFactory.openSession();
//模糊查询名字
List<User> list = sqlSession.selectList("test.like", "%w%");
for (User u :list) {
System.out.println(u);
}
}
}