基础Mybatis操作数据库(MySql)(一)

来源:互联网 发布:淘宝开店怎么做代销 编辑:程序博客网 时间:2024/06/16 05:49

基础Mybatis操作数据库(MySql)(一)

  1. 配置环境:需要用到2个jar包:mybatis-3.2.2.jar mysql-connector-java-5.17-bin.jar
  2. 编写DAO层 packcage(com.miao.dao;), class(UserDAO)
package com.miao.dao;import com.miao.entity.User;public interface UserDAO {    public void addUser(User user);    public void deleteUser(String uId);    public User queryUserById(String uId);    public User updateUser(User user);}

3.编写实体层 (entity) package com.miao.entity;

package com.miao.entity;import java.io.Serializable;public class User implements Serializable {    /**     *      */    private static final long serialVersionUID = 1L;    private String uId;    private String uName;    private Integer uAge;    private Integer uSex;    private String uPhone;    private String uDept;    public String getuId() {        return uId;    }    public void setuId(String uId) {        this.uId = uId;    }    public String getuName() {        return uName;    }    public void setuName(String uName) {        this.uName = uName;    }    public Integer getuAge() {        return uAge;    }    public void setuAge(Integer uAge) {        this.uAge = uAge;    }    public Integer getuSex() {        return uSex;    }    public void setuSex(Integer uSex) {        this.uSex = uSex;    }    public String getuPhone() {        return uPhone;    }    public void setuPhone(String uPhone) {        this.uPhone = uPhone;    }    public String getuDept() {        return uDept;    }    public void setuDept(String uDept) {        this.uDept = uDept;    }    @Override    public String toString() { //User user = new User(); system.out.print(user);会自动调用toString方法.        return "User [uId=" + uId + ", uName=" + uName + ", uAge=" + uAge + ", uSex=" + uSex + ", uPhone=" + uPhone                + ", uDept=" + uDept + "]";    }    public User(String uId, String uName, Integer uAge, Integer uSex, String uPhone, String uDept) {        super();        this.uId = uId;        this.uName = uName;        this.uAge = uAge;         this.uSex = uSex;        this.uPhone = uPhone;        this.uDept = uDept;    }}

4.编写DAO层的影射层.

<?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.miao.dao.UserDAO">      <!-- 增加 -->    <insert id="addUser" parameterType="com.miao.entity.User">        insert into user(u_id,u_name,u_age,u_sex,u_phone,u_dept)        values(#{uId},#{uName},#{uAge},#{uSex},#{uPhone},#{uDept})    </insert>    <!-- 删除 -->    <delete id="deleteUser" parameterType="java.lang.String">        delete from user where u_id=#{uId}    </delete>     <!-- 查询 -->    <select id="queryUserById" parameterType="java.lang.String" resultType="com.miao.entity.User">            select u_id as "uId",u_name as "uName",u_age as "uAge",u_sex as "uSex",u_phone as "uPhone",u_dept as "uDept"            from user            where u_id=#{uId}    </select>    <!-- 可能有错 -->    <update id="updateUser" parameterType="com.miao.entity.User" >        update user        set u_name=#{uName},u_age=#{uAge,jdbcType=INTEGER},u_sex=#{uSex,jdbcType=INTEGER},u_phone=#{uPhone},u_dept=#{uDept}        where u_id=#{uId,jdbcType=VARCHAR}    </update></mapper>  

5.编写启动mybatis的工具(package com.miao.util;)

package com.miao.util;import java.io.IOException;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;public class MybatisUtil {    private static SqlSessionFactory factory=null;    static{        try {            SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();            Reader reader=Resources.getResourceAsReader("mybatis-config.xml");            factory=builder.build(reader);        } catch (IOException e) {            e.printStackTrace();        }    }    public static SqlSession getSession(){        SqlSession session=factory.openSession();        return session;    }    public static void close(SqlSession session){        if(session!=null)            session.close();    }
这里的util多了一个   [public static SqlSession getSqlSession(boolean isAutoCommit) {        return getSqlSessionFactory().openSession(isAutoCommit);    }     true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务     *         false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务 ]package com.zb.sql.util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {    /**     * 获取SqlSessionFactory     * @return SqlSessionFactory     */    public static SqlSessionFactory getSqlSessionFactory() {        String resource = "conf.xml";        InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);        return factory;    }    /**     * 获取SqlSession     * @return SqlSession     */    public static SqlSession getSqlSession() {        return getSqlSessionFactory().openSession();    }    /**     * 获取SqlSession     * @param isAutoCommit      *         true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务     *         false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务     * @return SqlSession     */    public static SqlSession getSqlSession(boolean isAutoCommit) {        return getSqlSessionFactory().openSession(isAutoCommit);    }}

6.
编写xml 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" ><!-- 配置mybatis运行环境 --><configuration>    <environments default="mysql">        <environment id="mysql">            <transactionManager type="jdbc"></transactionManager>            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver"/>                <property name="url" value="jdbc:mysql://www.ishuaifei.com:3306/db_WxDevelop"/>                <property name="username" value="root"/>                <property name="password" value="123456789"/>            </dataSource>        </environment>    </environments>    <mappers>        <mapper resource = "com/miao/dao/impl/OrderDAOImpl.xml"/>        <mapper resource="com/miao/dao/impl/UserDAOImpl.xml" />    </mappers></configuration>
0 0
原创粉丝点击