001.SSM之MyBatis

来源:互联网 发布:学生怎么办理淘宝卡 编辑:程序博客网 时间:2024/05/18 21:47

项目构成:

  1. 配置文件
  2. 实体类
  3. 映射文件
  4. 测试类
  5. 接口文件
  6. 依赖包

配置文件

  • 配置类的别名
  • 数据库连接配置
  • 关联映射文件

    config.xml

    <?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><typeAliases>    <!-- type就是完整实体类名, -->    <typeAlias type="com.wsk.test.User" alias="User"/></typeAliases><environments default="development">    <environment id="development">        <transactionManager type="JDBC" />        <!-- 数据库连接配置 -->        <dataSource type="POOLED">            <property name="driver" value="com.mysql.jdbc.Driver" />            <property name="url" value="jdbc:mysql://localhost:3306/db_ke" />            <property name="username" value="root" />            <property name="password" value="123456" />        </dataSource>    </environment></environments><mappers>    <!-- 关联映射文件 -->    <mapper resource="com/wsk/test/UserMapper.xml"/></mappers></configuration>

实体类

  • javabean

    User.java

    package com.wsk.test;public class User {int id;String username;public int getId() {    return id;}public void setId(int id) {    this.id = id;}public String getUsername() {    return username;}public void setUsername(String username) {    this.username = username;}public String toString(){    return id+"--"+username;}}

映射文件

  • 实体类和表映射
  • 数据库操作

    UserMapper.xml

    <?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"><!-- 指定唯一的namespace,惯例是包名+文件名--><mapper namespace="com.wsk.test.UserMapper"><!-- 类与表映射配置 --><resultMap id="user_table"  type="User">    <id property="id" column="id"/>    <result property="username" column="name"/></resultMap><!-- 查询操作 --><select id="getUser" parameterType="int"     resultMap="user_table">    select * from user where id=#{id}</select><!-- 创建表--><update id="createUserTable">    create table user(        id int(6),        name varchar(10),        primary key (id)    )</update></mapper>

测试类

  • 先在数据库中创建user表和相应数据

    Test1.java

    package com.wsk.test;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Test1 { public static void main(String[] args) throws IOException {     //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件)      InputStream is = Test1.class.getClassLoader().getResourceAsStream("conf.xml");     //构建sqlSession的工厂     SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);     //创建能执行映射文件中sql的sqlSession     SqlSession session = sessionFactory.openSession();      // session.update("com.wsk.bean.UserMapper.createUserTable");      String statement = "com.wsk.test.UserMapper.getUser";//映射sql的标识字符串      //执行查询返回一个唯一user对象的sql      User user = session.selectOne(statement, 11);     System.out.println(user.toString());    }}

接口文件

  • 与映射文件名一致

    UserMapper.java

    package com.wsk.test;public interface UserMapper {    public User getUser(int id);}

    测试类

    package com.wsk.test;import java.io.IOException;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Test1 {    public static void main(String[] args) throws IOException {        //使用类加载器加载mybatis的配置文件(同时加载关联的映射文件)        InputStream is = Test1.class.getClassLoader().getResourceAsStream("conf.xml");        //构建sqlSession的工厂        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);        //创建能执行映射文件中sql的sqlSession        SqlSession session = sessionFactory.openSession();        UserMapper mapper=session.getMapper(UserMapper.class);                    User user=mapper.getUser(11);        System.out.println(user.toString());    }}

依赖包

  • mybatis-3.2.8.jar
  • mysql-connector-java-5.1.29.jar
  • demo