Mybaits学习笔记(一)
2016-03-17 13:39
435 查看
一、首先看下整体结构
二、导入jar包
四、编写session工厂类
五、创建数据库表
推荐myBatis博客
http://czj4451.iteye.com/blog/1976365
二、导入jar包
<!-- 连接MySQL数据库需要的jar包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.3</version> <scope>provided</scope> </dependency>三、编写总配置文件,命名为config.xml
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="mysql"> <environment id="mysql"> <!-- 使用JDBC的事务控制机制 --> <transactionManager type="JDBC"></transactionManager> <dataSource type="UNPOOLED"><!-- 使用连接池 --> <!-- 链接数据库信息 --> <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql:///etoak"></property> <property name="username" value="root"></property> <property name="password" value="etoak"></property> </dataSource> </environment> </environments> <mappers><!-- 映射文件位置 --> <mapper resource="com/etoak/bean/Student.xml"></mapper> </mappers> </configuration>
四、编写session工厂类
package com.etoak.factory; 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 SF { private static SqlSessionFactory f; private SF(){} static{ try {//1. Reader reader = Resources. getResourceAsReader("config.xml"); f = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } public static SqlSession getSession(){ return f.openSession(); } public static void main(String[] args) { System.out.println(SF.getSession()); } }
五、创建数据库表
drop table if exists student; create table student( id int primary key auto_increment, name varchar(32), age int, birth datetime );六、对应的JavaBean
package com.etoak.bean; import java.util.Date; public class Student { private int id; private String name; private int age; private Date birth; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } }七、JavaBean对应的配置文件
<?xml version="1.0" encoding="GBK"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.etoak"> <insert id="addStu" parameterType="com.etoak.bean.Student"> insert into student( name,age,birth) values(#{name},#{age},#{birth}) </insert> <select id="getStuById" parameterType="int" resultType="com.etoak.bean.Student"> select * from student where id=#id:<span class="s1" style="font-family: Arial, Helvetica, sans-serif;">INTEGER</span><span style="font-family: Arial, Helvetica, sans-serif;">#</span> </select> <update id="updateStu" parameterType="com.etoak.bean.Student"> update student set name=#{name},age=#{age},birth=#{birth} where id=#{id} </update> </mapper>八、Dao接口与实现
package com.etoak.dao; import com.etoak.bean.Student; public interface IStudentDao { boolean addStudent(Student stu); Student getStuById(int id); void updateStudent(Student stu); }
package com.etoak.dao; import org.apache.ibatis.session.SqlSession; import com.etoak.bean.Student; import com.etoak.factory.SF; public class StudentDaoImpl implements IStudentDao{ SqlSession session = null; @Override public boolean addStudent(Student stu) { try { session = SF.getSession(); //第一个参数表示执行SQL语句的Id //第二个参数是执行该SQL语句所需要参数 session.insert("addStu",stu); session.commit(); return true; } catch (Exception e) { e.printStackTrace(); if(session!=null)session.rollback(); return false; }finally{ if(session!=null)session.close(); } } @Override public Student getStuById(int id) { try { session = SF.getSession(); Student stu =(Student)session.selectOne("getStuById",id); session.commit(); return stu; } catch (Exception e) { e.printStackTrace(); if(session!=null)session.rollback(); return null; }finally{ if(session!=null)session.close(); } } @Override public void updateStudent(Student stu) { try { session = SF.getSession(); session.update("updateStu",stu); session.commit(); } catch (Exception e) { e.printStackTrace(); if(session!=null)session.rollback(); }finally{ if(session!=null)session.close(); } } }九、测试
package com.etoak.test; import java.util.Date; import com.etoak.bean.Student; import com.etoak.dao.IStudentDao; import com.etoak.dao.StudentDaoImpl; public class Test { public static void main(String[] args) { /*Student stu = new Student(); stu.setName("etoak"); stu.setAge(123); stu.setBirth(new Date()); */ IStudentDao dao = new StudentDaoImpl(); //dao.addStudent(stu); Student stu = (Student)dao.getStuById(1); stu.setName("newNAME"); dao.updateStudent(stu); } }
推荐myBatis博客
http://czj4451.iteye.com/blog/1976365