基于Mybatis的增删改查

来源:互联网 发布:iphone铃声制作软件 编辑:程序博客网 时间:2024/06/05 16:06

基于Mybatis的增删改查

1、 依赖包: mybatis-3.4.5.jar,jdbc-connector.jar,
2、 项目结构
这里写图片描述

3、 例子文件:

// com.pojo.User.javapackage com.pojo;public class User {    private int id;    private String name;    private String address;    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 getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public User() {    }    public User(String name, String address) {        this.name = name;        this.address = address;    }}// com.dao.UserDao.javapackage com.dao;import com.pojo.User;public interface UserDao {    public void addUser(User user);    public void deleteUser(int userId);    public void updateUser(User user);    public User selectUserById(int userId);    // 通过注解的方式,不需要配置mapper    // @select("select * from user where id=#{id}")    // public User selectUser(int id);}// com/dao/UserDaoMapper.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.dao.UserDao">    <select id="selectUserById" parameterType="int" resultType="User">        select * from user where user.id=#{id}    </select>    <insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">        insert into user (name, address)        values(#{name}, #{address})    </insert>    <update id="updateUser" parameterType="User">        update user set name=#{name}, address=#{address}        where id=#{id}    </update>    <delete id="deleteUser" parameterType="int">        delete from user where id=#{id}    </delete></mapper>// mybatis/mysql-jdbc.propertiesdriver=com.mysql.jdbc.Driveruser=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8username=rootpassword=123456// mybatis/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>    <typeAliases>        <typeAlias alias="User" type="com.pojo.User"/>    </typeAliases>    <properties resource="mybatis/mysql-jdbc.properties"></properties>    <environments default="development">        <environment id="development">            <transactionManager type="JDBC" />            <dataSource type="POOLED">                <!-- <property name="driver" value="com.mysql.jdbc.Driver"/> -->                <property name="driver" value="${driver}"/>                <property name="url" value="${url}"/>                <property name="username" value="${username}"/>                <property name="password" value="${password}"/>            </dataSource>               </environment>    </environments>    <mappers>        <mapper resource="com/dao/UserDaoMapper.xml"/>        // 通过注解也需要配置mapper        // <mapper class="com.dao.UserDao"/>    </mappers></configuration>// com.junit.UserDaoTest.javapackage com.junit;import java.io.Reader;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.BeforeClass;import org.junit.Test;import com.dao.UserDao;import com.pojo.User;public class UserDaoTest {    static SqlSession session;    @BeforeClass    public static void setUpBeforeClass() throws Exception {        Reader reader = Resources.getResourceAsReader("mybatis/mybatis-config.xml");        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);        session = factory.openSession();        reader.close();    }    @Test    public void addUser() {        User user = new User();        user.setName("张三");        user.setAddress("江苏省南京市");        UserDao dao = session.getMapper(UserDao.class); // UserDao的实现类由mybatis自己内部生成        dao.addUser(user);        session.commit();        session.close();    }    @Test    public void deleteUser() {        UserDao dao = session.getMapper(UserDao.class);        dao.deleteUser(1);        session.commit();        session.close();    }    @Test    public void updateUser() {        User user = new User("张三2", "江苏省南京市2");        UserDao dao = session.getMapper(UserDao.class);        dao.updateUser(user);        session.commit();        session.close();    }    @Test    public User selectUserById() {        UserDao dao = session.getMapper(UserDao.class);        User user = dao.selectUserById(1);        session.close();        return user;    }}// 表useruser 表结构id int auto_increasename char(4)address char(10)

4、 在插入中文字符的时候,出现数据库乱码
参考博客 mybatis操作mysql乱码