Mybatis入门示例
来源:互联网 发布:日本教科书知乎 编辑:程序博客网 时间:2024/05/26 16:01
近期刚入职公司,从学生时代往工程师转变,有很多技术细节不得不注意了,不再是学生时代了解大概就可以。最近看公司项目,发现很多技术、框架都需要重新梳理总结学习,把每天的内容碎片整理到印象笔记,隔三差五整理成博客,给自己总结复习之用,也向业内自学者贡献一点自己的力量,毕竟我也是这么过来的,如果没有前人通过博客等无私传播知识,那我们该如何自学呢?这便是我在这里开博客的初衷~~
很多东西不够完善,加上写作水平的局限,望各位看官海涵~
本人的博客除了每次大的主题,还会加入一些自己当时想得起的理解~~希望初学者也会有我这样的思考过程~~~
mybatis 入门
1、准备数据库
CREATE DATABASE mybatis;USE mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT);
INSERT INTO users(name, age) VALUES('Tom', 12);
INSERT INTO users(name, age) VALUES('Jack', 11);
INSERT INTO users(name, age) VALUES('youngholl', 24);
Tips:mysql 中类型后面往往会限制宽度,比如 INT(5),VARCHAR(20),但是这里可能很多人都理解错了,整型相关的几个类型后面的宽度指的是显示宽度,和实际存储的宽度无关,比如常见的00001就是INT(5) 同时设置ZEROFILL的结果。
对于字符型才是限制能存储的宽度,CHAR和VARCHAR类型声明的长度表示你想要保存的最大字符数,例如,CHAR(30)可以占用30个字符。
同时,CHAR和VARCHAR的主要区别是:
CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。
VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。
同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。
2、建立工程、准备依赖jar(使用maven),如果不使用maven构建,可以去官网自行下载下关jar包,注意使用到的几处资源路径,自己跑时可能会有报错,慢慢修改路径调试即可
工程结构可以简单建为下图所示:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.8</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>
3、在resources下建立mybatis 配置文件(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>
<!--
development 开发环境
work 上线环境
-->
<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="868848" />
</dataSource>
</environment>
</environments>
<!--注册 映射配置文件-->
<mappers>
<mapper resource="userMapper"/>
</mappers>
</configuration>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
development 开发环境
work 上线环境
-->
<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="868848" />
</dataSource>
</environment>
</environments>
<!--注册 映射配置文件-->
<mappers>
<mapper resource="userMapper"/>
</mappers>
</configuration>
4、建立操作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="userMapper">
<select id="getUser" parameterType="int"
resultType="com.mybatis.hello.User">
select * from users where id=#{id}
</select>
</mapper>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="userMapper">
<select id="getUser" parameterType="int"
resultType="com.mybatis.hello.User">
select * from users where id=#{id}
</select>
</mapper>
5、创建User.java实体类(省略了 setter、getter方法)
package com.mybatis.hello;
/**
* Created by yanghui10 on 2016/8/3.
* 与数据表对应的实体类
*/
public class User {
private int id;
private String name;
private int age;
/**
* Created by yanghui10 on 2016/8/3.
* 与数据表对应的实体类
*/
public class User {
private int id;
private String name;
private int age;
6、接下来就可以测试了
package com.mybatis.hello;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
/**
* Created by yanghui10 on 2016/8/3.
*/
public class MybatisTest {
public static void main(String[] args) throws IOException {
String resource = "conf.xml";
//加载mybatis 的配置文件(它也加载关联的映射文件)
//InputStream is=MybatisTest.class.getClassLoader().getResourceAsStream(resource);
Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession 的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql 的sqlSession
SqlSession session = sessionFactory.openSession();
//映射sql 的标识字符串
String statement = "userMapper"+".getUser";
//执行查询返回一个唯一user 对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
/**
* Created by yanghui10 on 2016/8/3.
*/
public class MybatisTest {
public static void main(String[] args) throws IOException {
String resource = "conf.xml";
//加载mybatis 的配置文件(它也加载关联的映射文件)
//InputStream is=MybatisTest.class.getClassLoader().getResourceAsStream(resource);
Reader reader = Resources.getResourceAsReader(resource);
//构建sqlSession 的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建能执行映射文件中sql 的sqlSession
SqlSession session = sessionFactory.openSession();
//映射sql 的标识字符串
String statement = "userMapper"+".getUser";
//执行查询返回一个唯一user 对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
你将会看到打印出的 User对象~~~~
0 0
- MyBatis(1)--MyBatis入门示例
- MyBatis(iBatis)入门示例!!!
- MyBatis入门示例
- MyBatis入门示例
- MyBatis入门配置示例
- MyBatis入门示例
- MyBatis入门示例
- MyBatis入门示例
- Mybatis入门示例
- MyBatis入门示例
- mybatis(2)---入门示例
- 一个很好的MyBatis入门示例程序
- Mybatis入门示例(一):基础代码
- MyBatis入门示例及所遇问题
- MyBatis入门示例——MyBatis学习笔记之一
- MyBatis入门示例——MyBatis学习笔记之一
- MyBatis入门示例——MyBatis学习笔记之一
- MyBatis入门示例——MyBatis学习笔记…
- Android okHttp 小白基本实现方法
- 学习caffe比较好的网址、博文
- myeclipse 设置【新建类】快捷键
- 史上最详细bitbucket入门手册,手把手操作指南
- 获取当前ViewController
- Mybatis入门示例
- 自定义数据序列化 msgpack object & zone 和 wamp_message 的打包,发送
- MongoDB Limit/限制记录
- Zhou_Zy's OI life.
- iOS系统的二维码扫描
- Java面向对象多态性应用
- 在Linux服务器Tomcat中部署转成Maven的JavaWeb项目
- 音频的播放方法
- exgcd之求逆元