mybatis学习一 环境搭建
第一步导入Jar包
第二步配置sqlMapConfig.xml文件,xml文件放在src下面
<?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>
<!-- default的值是<environment>的id,代表当前要连接的数据库环境
【注】default的值一定要是一个<environment>,否则在获取SqlSession实例时会报空指针错误
-->
<environments default="mySqlJdbc">
<environment id="mySqlJdbc">
<!-- 事物标签,使用原生jdbc的事物 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据库连接池技术 -->
<dataSource type="POOLED">
<!-- property中的name的值,不能随便写,有规定的 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.153.128:3306/mybaties?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
<environment id="oracleJdbc">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments> <!-- 加载XXXMapper.xml
如果采用代理开发,package批量指定xxxMapper.xml文件已经xxxMapper.java文件
-->
<mappers>
<mapper resource="com/caopeng/mapper/FlowerMapper.xml"/>
</mappers>
</configuration>
第三步 配置xxxMapper.xml文件,一般一个xxxMapper.xml文件需要和xxx实体类以及xxx接口配合使用
xxxMapper.xml文件,一般和xxxMapper.java文件,此文件是一个接口,放在同一个包下
<?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">
<!-- namespace的值用于区分各个文件中的同名的id
在mapper标签下的子标签一般都有一个id属性,如果有多个xxxMapper.xml文件,
就有可能造成aMapper.xml文件中的mapper下子标签的id与bMapper.xml文件中mapper下子标签冲突,
为了解决冲突问题,就用命名空间做区分,和c++中的命名空间,java中的包名 等功能类似
-->
<mapper namespace="com.caopeng.mapper.FlowerMapper">
<!-- select 语句标签在指定返回值时(resultType),哪怕返回值是一个List,但是也是要指定List中的类类型,
resultType的值没有List,我们在用原生的JDBC时,
ResultSet其实是一个游标,要rs.next()来走向下一个记录 -->
<select id="selAll" resultType="com.caopeng.pojo.Flower">
select * from flower
</select> </mapper>
第四步编写测试代码 非代理版本
public class Demo {
public static void main(String[] args) throws IOException {
//加载配置文件
InputStream in = Resources.getResourceAsStream("mybatis.xml");
//使用工厂设计模式 【注意】以后sqlSessionFactory都会被spring 管理,不需要我们自己创建
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);
System.out.println(sqlSessionFactory);
//获取sqlSession
SqlSession sqlSession=sqlSessionFactory.openSession();
List<Flower> flowrList = sqlSession.selectList("com.caopeng.mapper.FlowerMapper.selAll");
for (Flower flower : flowrList) {
System.out.println(flower);
}
sqlSession.close();
}
}
mybatis学习一 环境搭建的更多相关文章
- hive_学习_01_hive环境搭建(单机)
一.前言 本文承接上一篇:hbase_学习_01_HBase环境搭建(单机),主要是搭建 hive 的单机环境 二.环境准备 1.说明 hive 的下载来源有: 官方版本:http://archive ...
- hbase_学习_01_HBase环境搭建(单机)
一.前言 本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机) ,主要是搭建HBase的单机环境 二.环境准备 1.说明 hbase 的下载来源有: 官方版本:http://arc ...
- hadoop_学习_02_Hadoop环境搭建(单机)
一.环境准备 1.说明 hadoop的下载来源有: 官方版本:http://archive.apache.org/dist/hadoop/ CDH版本:http://archive.cloudera. ...
- mybatis:开发环境搭建--增删改查--多表联合查询(多对一)
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...
- 从0开始学爬虫9之requests库的学习之环境搭建
从0开始学爬虫9之requests库的学习之环境搭建 Requests库的环境搭建 环境:python2.7.9版本 参考文档:http://2.python-requests.org/zh_CN/l ...
- Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda
Ubuntu16.04深度学习基本环境搭建,tensorflow , keras , pytorch , cuda Ubuntu16.04安装 参考https://blog.csdn.net/flyy ...
- ubuntu 深度学习cuda环境搭建,docker-nvidia 2019-02
ubuntu 深度学习cuda环境搭建 ubuntu系统版本 18.04 查看GPU型号(NVS 315 性能很差,比没有强) 首先最好有ssh服务,以下操作都是远程ssh执行 lspci | gre ...
- Python基础学习之环境搭建
Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...
- 001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入)
001-深度学习Pytorch环境搭建(Anaconda , PyCharm导入) 在开始搭建之前我们先说一下本次主要安装的东西有哪些. anaconda 3:第三方包管理软件. 这个玩意可以看作是一 ...
随机推荐
- python使用websocket简单组建聊天室
server端 ###websocket_server### import socket import threading sock = socket.socket(socket.AF_INET, s ...
- 跳台阶(python)
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). # -*- coding:utf-8 -*- class Soluti ...
- Java-分治算法
一.分治算法的原理 分治算法就是将一个规模为N的问题分解成K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以得出原问题的解 二.分治算法的伪代码实现 合并算法Merge ...
- [剑指Offer]12-矩阵中的路径(回溯)
题目链接 https://www.nowcoder.com/practice/c61c6999eecb4b8f88a98f66b273a3cc?tpId=13&tqId=11218&t ...
- django的模板语言中一些之前没有用过的小点
1.模板语言中的for循环的最后一个的表示方式 {% for auther in auther_list %} {% if forloop.last %} {# 这里的意思是for循环的最后一个的意思 ...
- Spring <context:annotation-config> 和 <context:component-scan> 区别
一篇很不错的文章,看到就是赚到Get.... https://www.cnblogs.com/leiOOlei/p/3713989.html 说白了 :<context:component-sc ...
- 绝对路径${pageContext.request.contextPath}
${pageContext.request.contextPath}用于解决使用相对路径时出现的问题,它的作用是取出所部署项目的名字. 如图,${pageContext.request.context ...
- 【gRPC使用问题1】gRPC的proto内import其他proto导致的一次小坑
1.对于一些proto里面的定义,如果包含了 引入其他proto文件的 proto文件来说,生成的时候要注意.尤其是 引入的是官方框架内的 proto文件,如果自己没有提供的话,生成代码会报错! 具体 ...
- 理解Linux中的shutdown、poweroff、halt和reboot命令
原文 http://os.51cto.com/art/201706/541525.htm 在本篇中,我们会向你解释 shutdown.poweroff.halt 以及 reboot 命令.我们会 ...
- Linux 任务管理 && 常用指令
A.linux死机 转自:https://www.deleak.com/blog/2010/10/20/sysrq/ linux死机了怎么办? 曾经啊,对着键盘上 Print Screen/SysRq ...