年近不惑,为生活所迫,重新开始学习JAVA,计划将公司的开发平台统一到JAVA上来。现公司的技术杂乱,有PB开发的程序要维护、有PYTHON的程序要维护,有.NET的,也有JAVA的,非常不容易形成合力。

前段时间看了几个开源的企业开发框架,希望能带领部门基于jeesite框架来开发,所以自己要尽可能多的熟悉相关技术和框架,照着网上的例子练了JAVABEAN /JSP /SERVLET /JDBC,做了几个Helloworld ,一直还算顺利.。结合网上对Mybatis和Hibermete的对比,决定学习这个简单的Mybatis框架。

感谢“孤傲苍狼”的博客,MyBatis学习总结(一)——MyBatis快速入门 ,此文基本是转载原文。

一个例子,折腾了3天才出来,碰到的坑太多了也是真的够了。

遇到的错误至今无法解决,估计是版本兼容的问题(原环境Eclipse 4.7.1a、jdk1.8 161 、Mysql 57 、tomcat 8.5 );

最终的解决方法,是在虚拟机中新建了一套环境,用的ECLIPSE 4.5.2 、JDK 1.7 、MYSQ 57、TOMCAT 8.0 才跑出来;

复盘一下:

1、创建数据库及表

CREATE DATABASE MYBATIS;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
INSERT INTO USERS (NAME,AGE) VALUES("LINGRUI",25);

2、下载Mysql 和Mybatis驱动包

(因为Eclipse用的不熟,我是将这两个包,通过“Build Path "---"Configure Build Path "----"Libraries"---AddJARS加入到路径中的;)

3、创建Mybatis 环境配置 xml ,文件名可以自已随便起,我随例子一样,在SRC目录下,创建conf.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<!-- mybatis就是你创建的数据库名字,注意端口号 -->
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
</configuration>

4、定义表所对应的实体类 User.java 

 package Mybatis;

 /**
* @author gacl
* users表所对应的实体类
*/
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;
} @Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}

5、定义操作users表的sql映射文件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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="Mybatis.userMapper"就是Mybatis(包名)+userMapper(userMapper.xml文件去除后缀)
-->
<mapper namespace="Mybatis.userMapper"> <select id = "getUser" parameterType="int" resultType="Mybatis.User">
select * from users where id=#{id}
</select >
</mapper>

6、在CONF.XML中注册userMapper.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>
<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/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments> <mappers>
<!-- 注册userMapper.xml文件,
userMapper.xml位于Mybatis这个包下,所以resource写成Mybatis/userMapper.xml-->
<mapper resource="Mybatis/userMapper.xml"/>
</mappers> </configuration>

7、创建测试用例;Test1.java

 package Mybatis;

 import java.io.IOException;
import java.io.InputStream;
import java.io.Reader; import org.apache.ibatis.io.Resources;
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的配置文件
String resource = "conf.xml";
//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂
//System.out.println(is);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
//Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession的工厂
//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
* Mybatis.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "Mybatis.userMapper.getUser";//映射sql的标识字符串
//执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}

历经九九八十一难,终修成佛,成功看到控制台的运行结果;

原博客:MyBatis学习总结(一)——MyBatis快速入门  此文有适里改动

最新文章

  1. Collections
  2. [AlwaysOn Availability Groups]排查:AG超过RTO
  3. 一行代码如何控制ipunt框里面值的长度
  4. 论Oracle字符集“转码”过程
  5. namenode启动参数
  6. VS2010中水晶报表应用及实例
  7. tp中u方法的使用
  8. C# 订单流水号生成
  9. Mysql数据库之auto_increment
  10. mvc中传入字典的模型项的类型问题
  11. docker启动,重启,停止容器
  12. L1-037 A除以B (10 分)
  13. 服务容错保护断路器Hystrix之三:断路器监控(Hystrix Dashboard)-单体监控
  14. 素数筛选法(prime seive)
  15. Django静态文件的加载以及STATIC_URL、 STATIC_ROOT 、STATICFILES_DIRS的区别
  16. mysql 内置功能 存储过程 目录
  17. Krapo 2
  18. API网关Kong系列(二)部署
  19. CSS3中与文字相关的样式
  20. Wannafly模拟赛2

热门文章

  1. react使用引入svg的icon;svg图形制作
  2. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.1.安装并配置ASM驱动
  3. linux上虚拟显示器和火狐浏览器的使用学习记录
  4. solr File Upload &quot;Unsupported ContentType: application/vnd.ms-excel Not in: [application/xml, application/csv, application/json, text/json, text/csv, text/xml, application/javabin]&quot;,
  5. Scala实现冒泡排序、归并排序和快速排序
  6. 2014ACM/ICPC亚洲区域赛牡丹江站现场赛-A ( ZOJ 3819 ) Average Score
  7. js 上传图片进行回显
  8. Node.js abaike图片批量下载Node.js爬虫1.00版
  9. JavaScriptl 类数组转换为数组
  10. 【BIEE】19_不齐整维和越级维