MyBatis我来了

项目流程:

1、从eclipse中jdbc.properties中复制过来数据库的连接属性。

2、创建项目mybatis-hong

3、在WEB-INF中的lib中载入jar

4、先建立Student

5、数据库创建并建表

6、并对Student创建对应的StudentMapper.xml文件,将对象与数据库中的字段匹配。

7、编写mybatis.xml(连接数据库的驱动帐号等)

8、编写工具类MyBatisUtil.java

9、执行测试类StudentDao.java

10、再次刷新数据库,可以看到数据已经被载入数据库中。

 

详细步骤及代码:

实战开始:

1、从eclipse中jdbc.properties中复制过来数据库的连接属性。

jdbc.url=jdbc\:mysql\://192.168.100.251\:3306/wbj_bus?useUnicode\=true&characterEncoding\=UTF-8

jdbc.user=root

jdbc.password=wbj999888a

 

2、创建项目mybatis-hong

src——cn.itcast.javaee.mybatis——base——Student.java

src——cn.itcast.javaee.mybatis——base——StudentDao.java

src——cn.itcast.javaee.mybatis——base——StudentMapper.xml

src——cn.itcast.javaee.mybatis——base——Students.sql

 

src——cn.itcast.javaee.mybatis——util——MybatisUtil.java

另外就是:

src——mybatis.xml

 

3、在WEB-INF中的lib中载入jar

asm-3.3.1.jarc3p0-0.9.1.2.jarcglib-2.2.2.jarcommons-logging-1.1.1.jar

log4j-1.2.16.jarmybatis-3.1.1.jarmysql-connector-java-5.1.20-bin.jar

ojdbc5.jar

并进行载入,build path

 

4、先建立Student

package cn.itcast.javaee.mybatis.base;

/**

 * 学生

 * @author AdminTC

 */

public classStudent {

    private Integer id;

    private String name;

    private Double sal;

    public Student(){}

    public Student(Integer id,String name, Double sal) {

        this.id = id;

        this.name = name;

        this.sal= sal;

    }

    public Integer getId() {

        return id;

    }

    public void setId(Integer id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public Double getSal() {

        return sal;

    }

    public void setSal(Double sal) {

        this.sal = sal;

    }

}

 

5、数据库创建并建表

--mysql

createtable students(

    sidint(5) primary key,

    snamevarchar(10),

    ssaldouble(8,2)

);

 

6、并对Student创建对应的StudentMapper.xml文件,将对象与数据库中的字段匹配。

<?xml version="1.0"encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTDMapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="studentNamespace">

    <resultMap type="cn.itcast.javaee.mybatis.base.Student"id="studentMap">

        <id property="id"column="sid"/>

        <result property="name" column="sname"/>

        <result property="sal" column="ssal"/>

    </resultMap>       

    <insert id="add" parameterType="cn.itcast.javaee.mybatis.base.Student">

        insertinto students(sid,sname,ssal) values(#{id},#{name},#{sal})

    </insert>

</mapper>

 

7、编写mybatis.xml

<?xml version="1.0"encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTDConfig 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

 

<configuration>

   

    <environments default="mysql_developer">

   

        <environment id="mysql_developer">

       

            <transactionManager type="jdbc"/>  

   

            <dataSource type="pooled">

               

                <property name="driver" value="com.mysql.jdbc.Driver"/>

                <property name="url" value="jdbc:mysql://192.168.100.251:3306/test1?useUnicode=true&amp;characterEncoding=UTF-8"/>

                <property name="username" value="root"/>

                <property name="password" value="wbj999888a"/>

           

            </dataSource>

           

        </environment>

   

    </environments>

 

    <mappers>

        <mapper resource="cn\itcast\javaee\mybatis\base\StudentMapper.xml"/>

    </mappers>

   

 

</configuration>

 

8、编写工具类MyBatisUtil.java

package cn.itcast.javaee.mybatis.util;

import java.io.IOException;

import java.io.Reader;

import java.sql.Connection;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

/**

 * 工具类

 * @author AdminTC

 */

public classMybatisUtil {

    private staticThreadLocal<SqlSession> threadLocal = newThreadLocal<SqlSession>();

    private static SqlSessionFactory sqlSessionFactory;

    /**

     * 加载位于src/mybatis.xml配置文件

     */

    static{

        try {

            Readerreader = Resources.getResourceAsReader("mybatis.xml");

            sqlSessionFactory= newSqlSessionFactoryBuilder().build(reader);

        }catch(IOException e) {

            e.printStackTrace();

            throw new RuntimeException(e);

        }

    }

    /**

     * 禁止外界通过new方法创建

     */

    private MybatisUtil(){}

    /**

     * 获取SqlSession

     */

    public static SqlSessiongetSqlSession(){

        //从当前线程中获取SqlSession对象

        SqlSessionsqlSession = threadLocal.get();

        //如果SqlSession对象为空

        if(sqlSession == null){

            //SqlSessionFactory非空的情况下,获取SqlSession对象

            sqlSession= sqlSessionFactory.openSession();

            //SqlSession对象与当前线程绑定在一起

            threadLocal.set(sqlSession);

        }

        //返回SqlSession对象

        return sqlSession;

    }

    /**

     * 关闭SqlSession与当前线程分开

     */

    public static void closeSqlSession(){

        //从当前线程中获取SqlSession对象

        SqlSessionsqlSession = threadLocal.get();

        //如果SqlSession对象非空

        if(sqlSession != null){

            //关闭SqlSession对象

            sqlSession.close();

            //分开当前线程与SqlSession对象的关系,目的是让GC尽早回收

            threadLocal.remove();

        }

    }

 

    /**

     * 测试

     */

    public static void main(String[] args) {

        Connectionconn = MybatisUtil.getSqlSession().getConnection();

        System.out.println(conn!=null?"连接成功":"连接失败");

    }

}

 

9、执行测试类StudentDao.java

package cn.itcast.javaee.mybatis.base;

 

import org.apache.ibatis.session.SqlSession;

 

importcn.itcast.javaee.mybatis.util.MybatisUtil;

 

/**

 * 持久层

 * @authorAdminTC

 */

public class StudentDao {

    /**

     * 增加学生

     */

    publicvoid add(Student student) throws Exception{

        SqlSessionsqlSession = null;

        try{

            sqlSession= MybatisUtil.getSqlSession();

            sqlSession.insert("studentNamespace.add",student);

            sqlSession.commit();

        }catch(Exceptione){

            e.printStackTrace();

            sqlSession.rollback();

            throwe;

        }finally{

            MybatisUtil.closeSqlSession();

        }

    }

 

    /**

     * 测试

     */

    publicstatic void main(String[] args) throws Exception{

        StudentDaodao = new StudentDao();

        dao.add(newStudent(3,"中中中",3600D));

    }

}

 

10、再次刷新数据库,可以看到数据已经被载入数据库中。

    注意id字段不能重复,否则会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值