您的位置:首页 > 大数据 > 人工智能

Mybaits学习笔记(一)

2016-03-17 13:39 435 查看
一、首先看下整体结构



二、导入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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis mysql sql