mybatis快速入门

来源:互联网 发布:张东健在韩国地位 知乎 编辑:程序博客网 时间:2024/05/21 06:59

1)创建一个mybatis-day01这么一个javaweb工程或java工程

2)导入mybatis和mysql/oracle的jar包到/WEB-INF/lib目录下

3)创建students.sql表

--mysql语法

create table students(

   id  int(5) primary key,

   name varchar(10),

   sal double(8,2)

);

--oracle语法

create table students(

   id  number(5) primary key,

   name varchar2(10),

   sal number(8,2)

);

4)创建Student.java

/**

 * 学生

 * @authorAdminTC

 */

public class Student {

    private Integerid;

    private Stringname;

    private Doublesal;

    public Student(){}

    public Integer getId() {

       returnid;

    }

    public void setId(Integer id) {

       this.id = id;

    }

    public String getName() {

       returnname;

    }

    public void setName(String name) {

       this.name = name;

    }

    public Double getSal() {

       returnsal;

    }

    public void setSal(Double sal) {

       this.sal = sal;

    }

}

5)在entity目录下创建StudentMapper.xml配置文件

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEmapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

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

 

<mappernamespace="mynamespace">

    <insertid="add1">

       insert into students(id,name,sal) values(1,'哈哈',7000)

    </insert>

    <insertid="add2" parameterType="cn.itcast.javaee.mybatis.app05.Student">

       insert into students(id,name,sal) values(#{id},#{name},#{sal})

    </insert>

</mapper>

6)在src目录下创建mybatis.xml配置文件


<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTD Config 3.0//EN"

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

 

<configuration>

    <environmentsdefault="development">

       <environmentid="development">

           <transactionManagertype="JDBC"/>

           <dataSourcetype="POOLED">

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

              <propertyname="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>

              <propertyname="username"value="root"/> 

              <propertyname="password"value="root"/> 

           </dataSource>

       </environment>   

    </environments>

    <mappers>

       <mapperresource="cn/itcast/javaee/mybatis/app05/StudentMapper.xml"/>

    </mappers>

</configuration>

7)在util目录下创建MyBatisUtil.java类,并测试与数据库是否能连接

/**

 * MyBatis工具类

 * @authorAdminTC

 */

public class MyBatisUtil {

    private static ThreadLocal<SqlSession> threadLocal =new ThreadLocal<SqlSession>();

    private static SqlSessionFactory sqlSessionFactory;

    static{

       try {

           Reader reader = Resources.getResourceAsReader("mybatis.xml");

           sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);

       } catch (IOException e) {

           e.printStackTrace();

           throw new RuntimeException(e);

       }

    }

    private MyBatisUtil(){}

    public static SqlSession getSqlSession(){

       SqlSession sqlSession = threadLocal.get();

       if(sqlSession ==null){

           sqlSession = sqlSessionFactory.openSession();

           threadLocal.set(sqlSession);

       }

       return sqlSession;

    }

    public static void closeSqlSession(){

       SqlSession sqlSession = threadLocal.get();

       if(sqlSession !=null){

           sqlSession.close();

           threadLocal.remove();

       }

    }

    public static void main(String[] args) {

       Connection conn = MyBatisUtil.getSqlSession().getConnection();

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

    }

}

8)在dao目录下创建StudentDao.java类并测试

/**

 * 持久层

 * @authorAdminTC

 */

public class StudentDao {

    /**

     * 增加学生(无参)

     */

    public void add1() throws Exception{

       SqlSession sqlSession = MyBatisUtil.getSqlSession();

       try{

           sqlSession.insert("mynamespace.add1");

       }catch(Exception e){

           e.printStackTrace();

           sqlSession.rollback();

           throw e;

       }finally{

           sqlSession.commit();

       }

       MyBatisUtil.closeSqlSession();

    }

    /**

     * 增加学生(有参)

     */

    public void add2(Student student) throws Exception{

       SqlSession sqlSession = MyBatisUtil.getSqlSession();

       try{

           sqlSession.insert("mynamespace.add2",student);

       }catch(Exception e){

           e.printStackTrace();

           sqlSession.rollback();

           throw e;

       }finally{

           sqlSession.commit();

       }

       MyBatisUtil.closeSqlSession();

    }

    public static void main(String[] args)throws Exception{

       StudentDao dao = new StudentDao();

       dao.add1();

       dao.add2(new Student(2,"呵呵",8000D));

    }

}



0 0
原创粉丝点击