Java_myBatis入门写法
一.整体步骤

1.读取全局配置文件“SqlMapConfig.xml”
2.用SqlSessionFactoryBuilder来创建一个SqlSessionFactory
3.用创建好的SqlSessionFactory创建一个SqlSession
4.用创建好的SqlSession来读取对应的映射配置文件“Mapper1.xml”,并传入参数
5.返回结果
--------------------------------------------------------------------------------------------------------------------------------------------
二.具体步骤
1.新建maven项目
eclipse菜单找到“File”->"new"->"Project",选择Maven Project

2.在配置文件pom.xml下的denpencies添加denpency
mybatis的jar包和mysql的jdbc驱动
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
3.在src/main下新建资源文件夹"resources",并添加SqlMapConfig.xml、具体映射配置文件Mapper.xml和数据库参数文件db.properties

SqlMapConfig.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>
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="StudentMapper.xml"/>
</mappers>
</configuration>
db.properties的源码:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
username=root
password=123456
Mapper.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="test">
<select id="selectPerson" parameterType="int" resultType="com.mavenTest.mybatis_test.Person">
select * from Persons_table where id = #{id}
</select>
</mapper>
#{}:是经过处理的相当于JDBC的PreparedStatement,简单类型时“{}”里可以写任意名字(甚至是中文)
${}:是原样输出相当于JDBC的Statement,简单类型时“{}”里必须写“value”
4.在main/java下的任意jar包中创建一个pojo,这里例如是Person.class(注意对应好上面的resultType的路径)
public class Person{
private int id;
private String name;
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;
}
}
5.在java/main的任意jar包创建一个任意类
public class pratise {
public static void main(String[] args) throws IOException{
// 读取全局配置文件
InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
// 用SqlSessionFactoryBuilder来创建SqlSessionFactory实例
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
// 用SqlSessionFactory实例来创建SqlSession实例
SqlSession ss = ssf.openSession();
// 通过SqlSession实例来查询映射配置文件,然后传入参数,执行sql语句
Student s = ss.selectOne("selectStudent", 827);
// 关闭SqlSession实例
ss.close();
System.out.println(s.getName());
}
}
这样就已经可以实现数据库语句的调用了
Java_myBatis入门写法的更多相关文章
- MASA Blazor入门这一篇就够了
1.什么是Blazor? 有什么优势? ASP.NET Core Blazor 简介 Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScr ...
- 【题解】Luogu P2730 魔板
蒟蒻的第一道蓝题--好像也没有蓝的程度 一篇无STL的超弱题解(入门写法无误了QAQ 传送门 很经典的一道BFS 这是初始状态. 操作A 操作B 操作C 思路1 不使用cantor展开的情况 1. 对 ...
- python模块和类的通用转换规则(2),三步转oo
介绍模块和类怎么互相转换,不谈面向对象的继承 封装 多态等特点. 一个person_module模块,有人的基本属性和功能. person_module.py如下 # coding=utf8 name ...
- 不一样的入门:看C# Hello World的17种写法
摘要:本文针对不同阶段.不同程度的C#学习者,介绍了C# Hello World的17种不同写法,希望会对大家有所帮助.(C# Hello World写法入门.C# Hello World写法进阶.C ...
- ACM java写法入门
打2017icpc沈阳站的时候遇到了大数的运算,发现java与c++比起来真的很赖皮,竟然还有大数运算的函数,为了以后打比赛更快的写出大数的算法并且保证不错,特意在此写一篇博客, 记录java的大数运 ...
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...
- HTML5入门4---HTML5 与 HTML4 同一网页的不同写法
HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...
- node.js模块化写法入门
子模块的写法: function SVN(){ console.log('svn initialized'); return this; } function getInstance() { cons ...
- vue init定制团队模板之meta.js/meta.json写法入门
在上一篇文章中,我们提到了meta.js,这次我们详细了解一下meta.js里面各个模块的写法. 对于 meta.js/metajson 文件, 目前主要字段如下: prompts<Object ...
随机推荐
- hbase 1.2.1 分布式安装
1.机器信息 五台centos 64位机器 2.集群规划 Server Name Hadoop Cluster Zookeeper Ensemble HBase Cluster Ip Hado ...
- 1.个人项目 Individual Project
https://github.com/sunlitao 一. 实验1通讯录管理系统 通讯录中的联系人包含以下信息项:姓名.手机.办公电话.家庭电话.电子邮箱.所在省市.工作单位.家庭住址,群组分类(亲 ...
- jsp的自定义标签
1.相对于JSTL或Spring等第三方标签库而言的,用来实现项目中特定的功能需求. 2.自定义标签基本的组成部分 ①页面上看得见的部分 [1]通过taglib引入标签库 [2]标签本身 ②xxx.t ...
- Activiti解析.bpmn文件获得User Task节点的CandidateUsers特性的值
参考文档: http://www.cnblogs.com/mingforyou/p/5351332.html http://blog.csdn.net/jackyrongvip/article/det ...
- JavaScript(ECMAScript) with 语句
有同事,爱尝鲜,JavaScript ECMAScript with 语句,找了半天不知道局部变量的出处,原来是with语句搞得鬼. http://www.w3school.com.cn/js/pro ...
- Docker 方式运行 sonarqube
From 平台测试部同事的 ppt 感谢. 拉取镜像 docker pull postgres docker pull sonarqube 运行镜像 docker run --name db --re ...
- Jquery 组 tbale表格滚动条
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...
- 无法获得锁 /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
- python 深入浅出装饰器(decorator)--举的例子关于星级争霸2(starcraft2)
其实早就想写一篇深入浅出装饰器的文章,苦于一直没有找到很好的例子描述,自己除了在写api参数检测和日志打印的时候用到以外,其他地方也没有什么重度使用所以一直没有写. 我不会讲解装饰器的理论,还有各种基 ...
- 科普一下bl锁的知识,没解锁的必看!
今天给大家科普一下. 科普分为两版,一个详细版一个简单版.简单版往下翻. bl是什么?其实详细的我也不知道,我就知道原理和他的全称是bootloader.我们所说的解锁里面的“锁”,就是blbl锁的功 ...