首页 > 代码库 > myBatis01

myBatis01

技术分享

 

1.创建对应的数据库以及需要的表

技术分享

2.创建对应的java项目,引入需要的mybatis需要的jar,以及连接mysql数据库的jar!

 技术分享

3.创建对应的Student实体类

 

技术分享
/**
 *学生的实体类
 */
public class Student {
    private Integer id; // 学生编号
    private String name; // 姓名
    private Integer age; // 年龄

    /**
     * 对应的有参无参构造以及对应的get和set方法
     */
    public Student() {
        super();
    }

    public Student(Integer id, String name, Integer age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }

    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 Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}
Student

 

4.创建对应的接口以及mapper文件

 

技术分享
public interface StudentDao {
    /**
     * 新增学生信息
     */
    void addStudent(Student student);
}
StudentDao

 

技术分享
<?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="student">
    <insert id="addStudent" parameterType="cn.bdqn.bean.Student">
        insert into
        student(age,name) values(#{age},#{name})
    </insert>
</mapper>
StudentMapper

5.创建对应的实现类和工具类

 

技术分享
public class StudentDaoImpl implements StudentDao {

    /**
     * 新增学生信息
     */
    public void addStudent(Student student) {
        SqlSession session = null;
        try {
            // 通过工具类获取session
            session = SessionUtil.getSession();
            /**
             *  "addStudent" 要和mapper.xml文件中的id一致
             *   增删改 操作  底层 执行的都是update方法  
             */
            session.insert("addStudent", student);
            // 必须手动让session提交 底层默认就提交了事务
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close(); // 关闭session
            }
        }
    }
}
StudentDaoImpl

 

技术分享
/**
 * SqlSessionFactory我们只需要创建一次即可!
 * 所以我们使用单例!
 */
public class SessionUtil {
    private static SqlSessionFactory sessionFactory;

    public static SqlSession getSession() {

        try {
            /**
             *  读取核心配置文件 不需要关闭流 因为一旦读取了文件到内存中
             *  流在底层自动关闭了
             *  查看build(stream)源码得知
             */
            InputStream stream = Resources.getResourceAsStream("mybatis.xml");
            if (sessionFactory == null) {// 判断sessionFactory是否为空
                sessionFactory = new SqlSessionFactoryBuilder().build(stream);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 返回session 这里的openSession()没有携带参数
        return sessionFactory.openSession();
    }
}
SessionUtil

6.创建mybatis的核心配置文件和日志文件

 

 

技术分享
<?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">
<configuration>

    <!-- 通过properties文件配置连接数据库的四要素 -->
    <properties resource="jdbc.properties" />
    
    
    <!-- 设置别名 两种方式 -->
    <typeAliases>
           <!--  01.这种方式别名可以随意取  但是如果有多个 类 就需要配置多个typeAlias 
           <typeAlias type="cn.bdqn.bean.Student" alias="student"/> -->
           <package name="cn.bdqn.bean"/><!-- 02.这种方式要求别名必须使用简写的类名  -->
    </typeAliases>
    
    
    <!-- 配置运行环境 可以有多个 environment -->
    <environments default="mysql"><!-- 默认采用的环境 -->
        <environment id="mysql"> <!-- 环境的名称 -->
            <!--配置事务管理 采用jdbc默认的事务管理 之后整合的时候 肯定是交给了 spring来处理了 -->
            <transactionManager type="JDBC" />
            <!-- 数据源采用的是连接池技术 POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <!-- 加载映射文件信息 -->
    <mappers>
        <mapper resource="cn/bdqn/dao/StudentMapper.xml" />
    </mappers>
</configuration> 
mybatis.xml
技术分享
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %c %L %m %n

log4j.rootLogger=debug,console
log4j.properties

7.创建测试类测试

 

技术分享
public class StudentTest {

    @Test
    public void test() {
        StudentDao dao = new StudentDaoImpl();
        dao.addStudent(new Student(1, "小黑", 10));
    }
}
StudentTest

 

8.查看运行结果

技术分享

 

myBatis01