zoukankan      html  css  js  c++  java
  • mybatis操作数据库

    1. 导入jar包

     共13包

    注意:mysql-connction的版本是5.1.7版低版本可能不行

              2.编写配置文件

                      a. 配置连接数据库的文件

                               a.1创建数据库

                                

                         user表

                    

                                   a.2配置文件目录

                                          

                                                                               a.2.1db.properties(连接数据的数据)

    db.driver=com.mysql.jdbc.Driver
    db.url=jdbc:mysql://localhost:3306/mybaties?useUnicode=true&characterEncoding=utf8
    db.username=root
    db.password=abc

                                                                                  a.2.2SqlMapConfig.xml(连接javabean和数据库)

    <?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>
    <!-- 加载java的配置文件或者声明属性信息 -->
    <properties resource="db.properties">
    <property name="db.username" value="123" />
    </properties>
    <!-- <settings></settings> -->
    <!-- 自定义别名 -->
    <typeAliases>
    <!-- 单个别名定义 -->
    <!-- <typeAlias type="po.User" alias="user"/> -->
    <!-- 批量别名定义(推荐) -->
    <!-- package:指定包名称来为该包下的po类声明别名,默认的别名就是类名(首字母大小写都可) -->
    <package name="po" />
    </typeAliases>
    <!-- 配置mybatis的环境信息,与spring整合,该信息由spring来管理 -->
    <environments default="development">
    <environment id="development">
    <!-- 配置JDBC事务控制,由mybatis进行管理 -->
    <transactionManager type="JDBC"></transactionManager>
    <!-- 配置数据源,采用mybatis连接池 -->
    <dataSource type="POOLED">
    <property name="driver" value="${db.driver}" />
    <property name="url" value="${db.url}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
    </dataSource>
    </environment>
    </environments>

    <!-- 加载映射文件 -->
    <mappers>
    <mapper resource="User.xml" />
    <!-- <mapper resource="mapper/UserMapper.xml" /> -->

    <!-- 批量加载映射文件 -->
    <package name="mapper" />
    </mappers>
    </configuration>

                                                                          a.2.3 User.xml(编写sql语句)

    <?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:命名空间,对statement的信息进行分类管理 -->
    <!-- 注意:在mapper代理时,它具有特殊及重要的作用 -->
    <mapper namespace="test">
    <!-- 根据用户ID查询用户信息 -->
    <!-- select:表示一个MappedStatement对象 -->
    <!-- id:statement的唯一标示 -->
    <!-- #{}:表示一个占位符? -->
    <!-- #{id}:里面的id表示输入参数的参数名称,如果该参数是简单类型,那么#{}里面的参数名称可以任意 -->
    <!-- parameterType:输入参数的java类型 -->
    <!-- resultType:输出结果的所映射的java类型(单条结果所对应的java类型) -->
    <select id="findUserById" parameterType="int"
    resultType="po.User">
    SELECT * FROM USER WHERE id =#{id}
    </select>


    </mapper>

    1. 测试

                                                       

                                              User.java(javabean)

    package po;

    import java.util.Date;

    public class User {
    private int id;
    private String username;// 名字
    private String sex;// 年龄
    private Date birthday;// 生日
    private String address;//地址

    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 getSex() {
    return sex;
    }
    public void setSex(String sex) {
    this.sex = sex;
    }
    public Date getBirthday() {
    return birthday;
    }
    public void setBirthday(Date birthday) {
    this.birthday = birthday;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    @Override
    public String toString() {
    return "User [id=" + id + ", username=" + username + ", sex=" + sex
    + ", birthday=" + birthday + ", address=" + address + "]";
    }

    }

                                  MyBatisFrist.java

    @Test
    public void findUserByIdTest() throws Exception{
    //读取配置文件
    //读取全局配置文件
    String resource = "SqlMapConfig.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    //创建SqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    //创建SqlSession
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //调用SqlSession 的增删改查方法
    //第一个参数�表示statement的唯一标识
    User user = sqlSession.selectOne("test.findUserById", 1);
    System.out.println(user);
    //关闭资源
    sqlSession.close();
    }

              测试结果:

                            

          

  • 相关阅读:
    The lexer hack
    How Clang handles the type / variable name ambiguity of C/C++
    python
    基于asp.net + easyui框架,一步步学习easyui-datagrid——界面(一)
    程序员最该看的30本书---------------------------国外编辑推荐
    DirectX 学习经典参考书籍 电子书下载
    基于asp.net+ easyui框架,js提交图片,实现先上传图片再提交表单
    请问JAVA三层架构,持久层,业务层,表现层,都该怎么理解?和MVC三层模型有什么区别
    对java框架的几点认识
    J2EE入门必备
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/mybatis_easy.html
Copyright © 2011-2022 走看看