mybatis功能強大在映射語句,配置映射器XML文件相對簡單。下面是mybats的增刪改查
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">
<!-- XML 配置文件包含對 MyBatis 系統的核心設置 -->
<configuration>
<!-- 指定 MyBatis 所用日志的具體實現 -->
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.rookie.bigdata.domain"/>
</typeAliases>
<environments default="mysql">
<!-- 環境配置,即連接的數據庫。 -->
<environment id="mysql">
<!-- 指定事務管理類型,type="JDBC"指直接簡單使用了JDBC的提交和回滾設置 -->
<transactionManager type="JDBC"/>
<!-- dataSource指數據源配置,POOLED是JDBC連接對象的數據源連接池的實現。 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.47.151:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- mappers告訴了MyBatis去哪里找持久化類的映射文件 -->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
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">
<!-- namespace指用戶自定義的命名空間。 -->
<mapper namespace="com.rookie.bigdata.mapper.UserMapper">
<!--
id="save"是唯一的標示符
parameterType屬性指明插入時使用的參數類型
useGeneratedKeys="true"表示使用數據庫的自動增長策略
-->
<insert id="saveUser" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true">
INSERT INTO T_USER(name,sex,age)
VALUES(#{name},#{sex},#{age})
</insert>
<!-- select操作
parameterType="int"表示該查詢語句需要一個int類型的參數
resultType="user"表示返回的是一個user對象 -->
<select id="selectUser" parameterType="int" resultType="user">
SELECT * FROM T_USER WHERE id = #{id}
</select>
<select id="selectAll" resultType="user">
SELECT * FROM T_USER
</select>
<!-- update操作
parameterType="user"表示該更新語句需要一個user對象作為參數-->
<update id="updateUser" parameterType="user">
UPDATE T_USER
SET name = #{name},sex = #{sex},age = #{age}
WHERE id = #{id}
</update>
<!-- delete操作 parameterType="int"表示該查詢語句需要一個int類型的參數-->
<delete id="DeleteUser" parameterType="int">
DELETE FROM TB_USER WHERE id = #{id}
</delete>
</mapper>
UserMapper.java
package com.rookie.bigdata.mapper;
import com.rookie.bigdata.domain.User;
import java.util.List;
/**
* Created by dell on 2019/6/17.
*/
public interface UserMapper {
void saveUser(User user);
User selectUser(Integer id);
void updateUser(User user);
void DeleteUser(Integer id);
List<User> selectAll();
}
SqlSessionFactoryUtil.java
package com.rookie.bigdata.factory;
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 SqlSessionFactoryUtil {
private static SqlSessionFactory sqlSessionFactory = null;
// 初始化創建SqlSessionFactory對象
static{
try {
// 讀取mybatis-config.xml文件
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
// 獲取SqlSession對象的靜態方法
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
// 獲取SqlSessionFactory的靜態方法
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
}
測試增刪改查
package com.rookie.bigdata.mapper;
import com.rookie.bigdata.domain.User;
import com.rookie.bigdata.factory.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.*;
/**
* Created by dell on 2019/6/17.
*/
public class UserMapperTest {
@Test
public void saveUser() throws Exception {
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.saveUser(new User("張三", "男", 26));
sqlSession.commit();
sqlSession.close();
//sqlSession.commit();
}
@Test
public void selectUser() throws Exception {
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUser(1);
System.out.println(user);
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser() throws Exception {
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = new User("zhangsan","女",70);
user.setId(1);
mapper.updateUser(user);
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser() throws Exception {
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.DeleteUser(1);
sqlSession.commit();
sqlSession.close();
}
@Test
public void selectAll() throws Exception {
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = mapper.selectAll();
for (User user : userList) {
System.out.println(user);
}
sqlSession.commit();
sqlSession.close();
}
}