通过实战来了解Mybatis

        在我们最开始做开发的时候,基本上都是用JDBC来与数据库进行连接,这种方法相对而言比较繁琐。但是,自从Mybatis 是问世以后,让我们与数据库之间的连接更加方便快捷,我们现在通过简单的实战来了解mybatis是如何与数据库进行连接的。

1.设计数据库中的表结构

   

CREATE TABLE mybatis001.customer (
  id int(11) NOT NULL AUTO_INCREMENT,
  age int(11) DEFAULT NULL,
  education varchar(255) DEFAULT NULL,
  creditOneM int(11) DEFAULT NULL,
  creditCardOneM int(11) DEFAULT NULL,
  creditThreeM int(11) DEFAULT NULL,
  creditCardThreeM int(11) DEFAULT NULL,
  birthPlace varchar(255) DEFAULT NULL,
  numOfPhone int(11) DEFAULT NULL,
  realName varchar(255) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 9
AVG_ROW_LENGTH = 2730
CHARACTER SET utf8
COLLATE utf8_general_ci;
2.在程序中,设计customer相对应的POJO类,在这个实例中,我仅仅简单的用age和education这两个字段来表示用户的基本信息,代码如下:

package com.mybatis;

public class User {
	
	private int age;
	private String education;
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getEducation() {
		return education;
	}
	public void setEducation(String education) {
		this.education = education;
	}
	
	@Override
	public String toString() {
		return "User [age=" + age + ", education=" + education + "]";
	}
	
	

}
3.数据库和用户的POJO对象都建好了后,接下来也就是这个实例的重点,该如何链接呢?

以前我们使用的是JDBC来进行连接:

Connection con;
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名mydata
        String url = "jdbc:mysql://****:3306/rule2";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "root";
这种放的的耦合度不高,并且比较繁琐,现在我们用mybatis来与数据库进行连接

<pre name="code" class="java"><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://****:3306/mybatis001" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
<configuration>

 

4.数据库与后台连接成功后,我们该如何与数据库进行互动?来进行增删改查的基本操作呢?其实,这种方式也是通过xml文件来与数据库进行交互,sql代码的编写方式与原始的sql语句有些差别,但是大致基本上相同。

<select id="getUser" parameterType="int" 
        resultType="com.mybatis.User">
        select age,education from customer where id=#{id}
</select>
5.由于刚刚我们在后端设置的user字段为age和education,所有我们只需要提取数据库中这两个字段即可,提取出来之后,我们用sqlsessionfactory来执行sql语句

<span style="white-space:pre">	</span>//mybatis的配置文件
        String resource = "com/mybatis/jdbcConfig.xml";
        //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
        InputStream is = test1.class.getClassLoader().getResourceAsStream(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
        
        SqlSession session = sessionFactory.openSession();
       
        String statement = "com.mybatis.userMapper.getUser";//映射sql的标识字符串
        //执行查询返回一个唯一user对象的sql
        User user = session.selectOne(statement, 3);
        System.out.println(user);
有些同学以为这样就可以执行啦,其实不是,我们看到jdbcConfig.xml文件中,并没有执行第四步的xml语句,所有我们要把第四步的xml语句配置到jdbcConfig.xml中去

<mappers>
        <mapper resource="com/mybatis/userMapper.xml"/>
</mappers>
6.最后进行测试,即可正确输出数据库中的数据。

User [age=27, education=大学]

注意:有些同学数据中文的时候显示乱码,这个问题是编码配置不正确导致的,所以我们在建数据库的时候配置其编码方式为UTF-8,以及eclipse环境中的编码方式也为UTF-8。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值