Mybatis使用入门
1.mybatis
轻量级持久层框架
封装JDBC
sql、代码分离
提供xml标签 实现动态SQL
2.使用步骤
2.1、环境搭建
-
创建mevin工程
-
创建父工程
-
导入相关依赖
-
mysql驱动
-
mybatis核心
-
junit测试
-
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
2.2、创建模块
-
编写mybatis核心配置文件
-
mybatis-config.xml
-
-
//sqlSessionFactory-->sqlsession
public class MybatisUntils {
private static SqlSessionFactory sqlSessionFactory =null;
static {
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlsession(){
return sqlSessionFactory.openSession();
}
}
-
创建实体类
package com.demo.pojo;
public class User {
private int id;
private String name;
private String pwd;
-
创建Dao
package com.demo.dao;
import com.demo.pojo.User;
import java.util.List;
public interface UserDao {
List<User> getUser();
User getUserById(int id);
int addUser(User user);
int updateById(User user);
}
-
创建mapper.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="com.demo.dao.UserDao">
<select id="getUser" resultType="com.demo.pojo.User">
SELECT * FROM user;
</select>
<select id="getUserById" parameterType="int" resultType="com.demo.pojo.User">
select * from user
where id =#{id};
</select>
<insert id="addUser" parameterType="com.demo.pojo.User">
insert into user(id,name ,pwd)
values (#{id},#{name},#{pwd});
</insert>
<update id="updateById" parameterType="com.demo.pojo.User">
update user set name=#{name},pwd=#{pwd} where id=#{id};
</update>
</mapper>
-
编写测试类测试
package com.demo;
import com.demo.dao.UserDao;
import com.demo.pojo.User;
import com.demo.untils.MybatisUntils;
import org.apache.ibatis.session.SqlSession;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserDaoTest {
public static void main(String[] args) {
update();
}
public static void test01(){
SqlSession sqlsession = MybatisUntils.getSqlsession();
UserDao mapper = sqlsession.getMapper(UserDao.class);
List<User> user = mapper.getUser();
for (User user1 : user) {
System.out.println(user1);
}
}
public static void test02(){
SqlSession sqlsession = MybatisUntils.getSqlsession();
UserDao mapper = sqlsession.getMapper(UserDao.class);
User userById = mapper.getUserById(1);
System.out.println(userById);
}
public static void add(){
SqlSession sqlsession = MybatisUntils.getSqlsession();
UserDao mapper = sqlsession.getMapper(UserDao.class);
int i = mapper.addUser(new User(4,"liliu","q231"));
sqlsession.commit();
System.out.println(i);
sqlsession.close();
}
public static void update(){
SqlSession sqlsession = MybatisUntils.getSqlsession();
UserDao mapper = sqlsession.getMapper(UserDao.class);
int i = mapper.updateById(new User(3, "weq123", "w123"));
System.out.println(i);
sqlsession.commit();
sqlsession.close();
}
}