mybatis的简单使用

原创 2016年06月01日 15:16:04

在java web工程中对于数据库的操作基本都是通过mybatis库操作的,下面就简单的介绍初步的使用过程。
首先我们建立了测试用的数据库mybatis:

create database mybatis;
use mybatis;
create table users(id int primary key auto_increment,name varchar(20),age int);
insert users(name,age) values ('句芒',100);
insert users(name,age) values ('帝江',200);

我们在这个新建的数据库中建立一个表users,然后插入两条数据。
对应的我们要在Java web工程中创建这个表对于的java类User,很多地方(主要是使用spring的时候)又叫它bean对象。这个java类的属性要与数据库中的字段对应:

package ServaceStudy;

public class User {
    private int id;
    private String name;
    private int age;

    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;
    }
}

操作数据库是需要使用sql语句的,下面我们需要创建users表对应的sql语句的xml文件,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">
<mapper namespace="MyMapper.userMapper">
    <select id="getUser" parameterType="int" resultType="ServaceStudy.User">
    select *from users where id=#{id}
    </select>

</mapper>

mapper 标签的属性namespace的值一般是包名+xml文件名,作为命名空间的值。select 标签代表基本的sql语句增删改查中的查,id用于唯一标识这个sql语句,parameterType属性代表查找时传入参数的类型,resultType代表查找结果的返回类型,select *from users where id=#{id} 这是具体的查询语句,表示根据id查询对应的那条数据。
好了到这位置我们已经创建了三个元素:数据库中的一个表,表对应的java类,表对应的mapper文件。这三个元素现在是没有关系的,我们还需要更进一步的使它们产生关联。
在工程中我们需要创建一个xml文件用于管理mybatis在工程中的使用,这个文件大概要完成这些事情:指定连接到哪个数据库,注册表对应的mapper文件:

<?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>
    <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://10.1.3.121:3306/mybatis" />
                 <property name="username" value="root" />
                 <property name="password" value="123456" />
             </dataSource>
         </environment>
     </environments>

     <mappers>
        <mapper resource="MyMapper/userMapper.xml"/>
     </mappers>

</configuration>

environments标签是环境的意思,这里指的是数据库连接的是生产环境还是开发环境,现在开发过程中一般都连接开发环境的,dataSource数据源标签这里会规定连接数据库的一些信息,driver这里会规定默认加载的架包路径,url设置连接数据库的地址,username和password分别是数据库的用户名和密码。
在mappers标签中会注册我们写的mapper文件如:<mapperresource="MyMapper/userMapper.xml"/>
resource 就是mapper文件的路径。
好了,到这里我们把需要做的前期工作已经完成了,下面写代码测试:

package ServaceStudy;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMybatis {
    public static String selectUserById(Integer id) {

        InputStream input = TestMybatis.class.getClassLoader().getResourceAsStream("conf.xml");

        String statement = "MyMapper.userMapper.getUser";

        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
        SqlSession session = sessionFactory.openSession();

        User user = session.selectOne(statement,id);
        session.close();
        return user.getName();
    }
}
InputStream input = TestMybatis.class.getClassLoader().getResourceAsStream("conf.xml");

是使用类加载器加载mybatis的总的配置文件的,也可以使用其自带的类Resources类加载:Reader input = Resources.getResourceAsReader("conf.xml");

String statement = "MyMapper.userMapper.getUser";

这个是指明将要执行哪个mapper文件中的哪条sql语句。
下面获取SqlSession执行查询语句:

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(input);
        SqlSession session = sessionFactory.openSession();

        User user = session.selectOne(statement,id);
版权声明:本文已经搬迁到博主个人网站:http://13fafa.cn。

相关文章推荐

spring学习笔记: Spring Jdbc

从这一讲开始,需要用到数据库,你先要确保你有一个数据库可以供你测试,本章用到一个表叫做book, 建表语句:create table letter(  id varchar(20) primary k...

spring学习笔记:Spring IOC容器,Spring源码

前面说到了spring使用配置文件来描述bean与bean之间的关系,并且由IOC容器来实例化这些bean,刚才的程序使用了ApplicationContext,其实它是建立在BeanFactory之...

开始使用spring

spring的功能很强大,使用也很简单,可以说是我见到的解耦合性最强的框架了,首页在使用前我们需要导入spring的包, 从spring官网下载的lib中我们选择这七个导入到工程中: 此外还有一个...

spring学习笔记: Spring AOP

AOP的概念不好解释, 有一大堆的术语都很拗口,还是先看一个代码例子,在src根目录下面新建一个package叫做aop,把这个单元所有的代码都放在这个包里面,有一个接口BookService,它有一...

spring学习笔记:bean的配置

从Spring IOC容器中获取一个bean很简单,正如前面看到的,context.getBean("bean name"); 关键是配置bean, 我们前面配置了一个叫做myBook的bean; ...

Spring MVC配置及拦截器的实现

如题所示,这里主要是介绍拦截器的使用了但是为了更贴合实际的项目所以我们先导入spring mvc框架。为了使用spring mvc我们要导入相关的包,它依赖于spring-web 和spring -w...

Hibernate学习笔记:第一例

重学hibernate,决定分享学习笔记。新建一个project,名字叫做hibernate, 普通的java project就可以了。导入jar包,hibernate依赖很多jar包,我把用上的ja...

spring学习笔记:ioc容器高级特性

Spring容器的高级特性涉及到属性编辑器,使用外部属性文件,国际化,容器事件等等; 今天讲解一下属性编辑器,使用外部资源,国际化。属性编辑器  如果你没有了解过属性编辑器,建议你先google一下,...

spring学习笔记:开始使用spring

这几天终于闲下来了,回头翻了一下以前看过的spring企业开发,发现很多知识点都忘记了。决定把spring再复习一遍,于是头脑中迸出一个想法:把学习的进度记录下来,和初学者一起分享spring的学习经...

在weblogic中配置和使用dataSource

以weblogic8.1为例:怎么配置domain就不说了,启动domain,进入:http://localhost:7001/console,在首页找到Services Configurations...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)