增刪改查CRUD
阿新 • • 發佈:2021-12-17
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"> <!--useSSL=true&characterEncoding=UTF-8&useUnicode=true&serverTimezone=GMT--> <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://localhost:3306/mybatistest?useSSL=false&useUnicode=true&CharacterEncoding=UTF8&serverTimezone=GMT"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/kakafa/dao/UserMapper.xml"></mapper> </mappers> </configuration>
MyBatisutils:
package com.kakafa.util; 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 java.io.IOException; import java.io.InputStream; public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static{ try { //使用mybatis第一步:獲取sqlSessionFactory物件 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } //既然有了 SqlSessionFactory,顧名思義,我們可以從中獲得 SqlSession 的例項。 //SqlSession 提供了在資料庫執行 SQL 命令所需的所有方法。你可以通過 SqlSession 例項來直接執行已對映的 SQL 語句。 public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } }
User
package com.kakafa.pojo; public class User { private int id; private String name; private String pwd; public User() { } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } 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 getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
UserMapper
package com.kakafa.dao;
import com.kakafa.pojo.User;
import java.util.List;
public interface UserMapper{
//獲取全部使用者
List<User> getUserList();
//根據id查詢使用者
User getUserById(int id);
//插入一個使用者
int addUser(User user);
//修改使用者
int updateUser(User user);
//刪除使用者
int deleteUser(int id);
}
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="com.kakafa.dao.UserMapper">
<select id="getUserList" resultType="com.kakafa.pojo.User">
select * from mybatistest.user;
</select>
<select id="getUserById" parameterType="int" resultType="com.kakafa.pojo.User">
select * from mybatistest.user where id = #{id};
</select>
<insert id="addUser" parameterType="com.kakafa.pojo.User" >
insert into mybatistest.user(id,name,pwd) values(#{id},#{name},#{pwd});
</insert>
<update id="updateUser" parameterType="com.kakafa.pojo.User">
update mybatistest.user
set name=#{name},pwd=#{pwd}
where id=#{id};
</update>
<delete id="deleteUser" parameterType="int">
delete
from mybatistest.user
where id=#{id};
</delete>
</mapper>
測試 注意:增刪改需要提交事務sqlSession.commit();
package com.kakafa.dao;
import com.kakafa.pojo.User;
import com.kakafa.util.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;
public class UserMapperTest {
@Test
public void test(){
//1.獲得sqlSession物件
SqlSession sqlSession = MybatisUtils.getSqlSession();
//2.執行sql
UserMapper mapper = sqlSession.getMapper(UserMapper.class);//得到一個UserDao型別的物件
List<User> userList = mapper.getUserList();
for (User user : userList) {
System.out.println(user);
}
//關閉sqlSession
sqlSession.close();
}
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(2);
System.out.println(user);
sqlSession.close();
}
//增刪改需要提交事務
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user=new User(3,"張三","123456");
int i= mapper.addUser(user);
System.out.println(i);
//提交事務
sqlSession.commit();
sqlSession.close();
}
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user=new User(3,"鄧孝慈","111111");
int i= mapper.updateUser(user);
System.out.println(i);
//提交事務
sqlSession.commit();
sqlSession.close();
}
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int i= mapper.deleteUser(3);
System.out.println(i);
//提交事務
sqlSession.commit();
sqlSession.close();
}
}