mybatis原始方法的增删改查
- mybatis原始方法的删
- mybatis原始方法的增
- mybatis原始方法的改
- mybatis原始方法的查
package com.csdn.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 DBUtil {
public SqlSession getSqlSession() throws IOException {
InputStream inputStream = Resources.getResourceAsStream("com/csdn/config/Configuration.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory.openSession();
}
}
<?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">
<property name="" value=""/>
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/jdbc201910"/>
<property name="username" value="root"/>
<property name="password" value="sudi"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- <mapper resource="org/apache/ibatis/submitted/complex_property/User.xml"/>-->
<mapper resource="com/csdn/config/sql/User.xml"/>
</mappers>
</configuration>
mybatis原始方法的删
package com.csdn.dao;
import com.csdn.util.DBUtil;
import org.apache.ibatis.session.SqlSession;
import java.io.IOException;
public class UserDao {
public void deleteUserById(int id) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
sqlSession.delete("deleteById", id);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public static void main(String[] args) throws IOException {
UserDao userDao = new UserDao();
userDao.deleteUserById(1);
}
}
<?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="User">
<!-- id = #{} 括号中放啥都行-->
<delete id="deleteById">
delete from t_person where id = #{id}
</delete>
</mapper>
mybatis原始方法的增
public void insertUser(int id, String name, String password) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
sqlSession.insert("insertUser", new User(id, name, password));
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public void insertUserByUser(User user) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
sqlSession.insert("insertUserByUser", user);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
<insert id="insertUser" parameterType="com.colin.bean.User">
insert into user values(#{id}, #{name}, #{password})
</insert>
<insert id="insertUserByUser">
insert into user values(#{id}, #{name}, #{password})
</insert>
- 注意:当有多个参数传进来的时候,子配置文件中i
insert into user values(#{id}, #{name}, #{password})
的传入参数名字必须与User里边的成员变量名字一样。
mybatis原始方法的改
public void updateUserByUser(User user) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
sqlSession.update("updateByUser", user);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public void updateUserByMap(Map<String, Object> map) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
sqlSession.update("updateUserByMap", map);
sqlSession.commit();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
主方法实现
userDao.updateUserByUser(new User(888, "memeda", "dashagua"));
Map<String, Object> map = new HashMap<>();
map.put("id", 888);
map.put("password", "yyyy");
userDao.updateUserByMap(map);
<update id="updateByUser">
update user set name = #{name}, password = #{password} where id = #{id}
</update>
<update id="updateUserByMap">
update user set password = #{password} where id = #{id}
</update>
mybatis原始方法的查
public User selectUserById(int id) throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
User user = sqlSession.selectOne("selectUserById", id);
return user;
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
public List<User> selectAll() throws IOException {
SqlSession sqlSession = null;
try {
sqlSession = new DBUtil().getSqlSession();
List<User> list = sqlSession.selectList("selectAll");
return list;
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
<select id="selectUserById" resultType="com.colin.bean.User">
select id, name, password from user where id = #{fangshadouxing}
</select>
<select id="selectAll" resultType="com.colin.bean.User">
select id, name, password from user
</select>
- 子配置文件selectAll中resultType为什么是User而不是List呢?
- 因为在源码中会循环查询数据,将User类型的数据通过List中的add方法一个一个的塞进List创建的对象中。