技术标签: 框架篇 持久层 玩转MyBatis系列教程 Mybatis教程 dao层
下载地址:
https://github.com/mybatis/mybatis-3
https://oss.sonatype.org/content/repositories/snapshots/org/mybatis/mybatis/
lib:依赖包
mybatis-3.4.6.jar:mybatis核心jar包
mybatis-3.4.6.pdf:mybatis文档
/*Tablestructure for table `user` */
DROPTABLE IF EXISTS `user`;
CREATETABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) COLLATE utf8_bin DEFAULTNULL,
`password` varchar(20) COLLATE utf8_binDEFAULT NULL,
`age` int(3) DEFAULT NULL,
`address` varchar(20) COLLATE utf8_binDEFAULT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--插入数据
INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('zhangsan','123456',18,'成都');
INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('lisi','123456',28,'贵州');
INSERTINTO USER(NAME,PASSWORD,age,address) VALUES('wangwu','123456',38,'北京');
mybatis-3.4.6.jar:mybatis核心包
mysql-connector-java-5.1.7-bin.jar:MySQL驱动包
在想src路径下新mybais核心配置文件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">
<!-- mybatis核心配置 -->
<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?characterEncoding=utf-8"/>
<property name="username"value="root" />
<property name="password"value="1234" />
</dataSource>
</environment>
</environments>
</configuration>
新建包:com.itcodeschool.domain
新建类:User.java
package com.itcodeschool.domain;
publicclass User {
privateintid;
private String name;
private String password;
privateintage;
private String address;
}
//省略get/set/toString方法
新建包:com.itcodeschool.mapper
新建文件: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">
<!-- id:设置唯一值,resultType 配置返回值类型为User-->
<select id="findUser"resultType="com.itcodeschool.domain.User">
<!-- 编写 SQL 语句 -->
SELECT *FROM User
</select>
</mapper>
在SqlMapConfig.xml文件末尾加上即可
<!-- 加载UserMapper映射文件 -->
<mappers>
<mapper resource="com/itcodeschool/mapper/UserMapper.xml"/>
</mappers>
新建包:com.itcodeschool.test
新建测试类:test.java
package com.itcodeschool.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
importorg.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.tomcat.util.collections.SynchronizedStack;
import com.itcodeschool.domain.User;
publicclass UserTest {
publicstaticvoid main(String[] args) {
//1、读取配mybatis核心置文件,转换为输入流
String resource = "SqlMapConfig.xml";
InputStream in = null;
try {
in = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
//2、根据mybatis核心配置文件输入流构建一个session工厂,SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
//3、根据SqlSessionFactory对象开启一个会话:SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
List<User> list = sqlSession.selectList("UserMapper.findUser");
System.out.println("总数量:"+list.size());
for(User user : list) {
System.out.println(user);
}
//释放资源
sqlSession.close();
}
}
项目完整目录如下:
加入jar包
在mybatis-3.4.6\lib目录下找到log4j-1.2.17.jar、slf4j-log4j12-1.7.25.jar加入到项目中
在src目录系新建log4j配置文件,log4j.properties
##########Set Log Levels###############
log4j.rootLogger = DEBUG,console
######### Output to console ####################
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE}%5p%c{ 1:%L-%m%n
重新运行UserTest.java类
如下图,可以看到更多日志信息
输出更多的日信息有利于查看程序运行过程和排查错误
** ** 朋友需要帮忙获取资源信息,于是我利用周末时间,用python写了个工具从高德地图上抓取信息(包括位置,电话,经纬度等),得到了他想要的数据, 绝对可靠**** url = "http://restapi.amap.com/v3/place/text?&keywords=&types=" + self.cityType + "&city=" + self.ci...
学习交流关注微信公众号:钟渊博客今天开始学习设计模式之单例和多例单例模式的关键有两点:1.构造方法为私有,这样外界就不能随意调用。2.get的方法为静态,由类直接调用多例模式(Multiton)1、多例类可以有多个实例2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。一、单例模式和多例模式说明:1.单例模式和多...
所有的训练日志文件以及权重都保存在:..../deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train所以输入命令:tensorboard --logdir=.../deeplab/datasets/pascal_voc_seg/exp/train_on_trainval_set/train即可进行可视化:然...
序号 事件 描述 1 OnActive 焦点称到窗体或控件时发生 2 OnClick 鼠标单击事件 3 OnDbClick 鼠标双击事件 4 OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级 5 OnContextPopup 在窗体上单击鼠标右键时触发 6 OnCreate 建
Requests模块介绍:#介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3)#注意:requests库发送请求将网页内容下载下来以后,并不会执行js代码,这需要我们自己分析目标站点然后发起新的request请求#安装:pip3 install requests#各种请求方式:...
简介华为软开云主要目的是为企业提供一套`DevOps`(即开发运维)的云端解决方案,包括项目管理、代码仓库、编译构建、部署发布、流水线,甚至`CloudIDE`,实现云端的开发与维护。这里我们先忽略华为软开云的项目管理功能(`Scrum`,看板里的需求规划、任务指派、工时分配),测试功能,文档管理功能,CloudIDE等;重点关注`项目创建、代码托管、编译构建、部署、发布以及流水线功能`;同时...
CSS3自定义的radio样式
1、安装samba执行yum -y install samba2、配置sambamkdir -p samba/share 创建共享目录chmod 777 /samba/share/ 设置目录权限,否则windows下访问不能修改修改samba配置文件:cd /etc/samba/ 定位到配置文件目录cp smb.conf smb.conf.ba...
Hyper-V虚拟机安装Ubuntu成功以后,重启的时候页面会一直卡在下面,并报Please remove the installation medium,then press ENTER,这是因为启动默认是从CD/DVD启动,所以才导致了这样的问题。解决方法:先关闭正在启动的Ubuntu,如果强制关闭也无法关闭,那么先等一段时间以后,再强制关闭就可以了,然后打开Hyper-...
断断续续的搞了两次,终于把这个功能实现了。1.二维码的插件2.转base64格式的工具(图像转换工具,可用于图像和base64的转换)3.uniapp安装// 以下路径需根据项目实际情况填写import { pathToBase64, base64ToPath } from '../../js/image-tools/index.js'4.pathToBase64从图像路径转...
错误信息:RMAN-05501: aborting duplication of target databaseRMAN-05001: auxiliary file name /oracle/oradata/skatedb/tbs_statspack01.dbf conflicts with a file used by the target database在用rman duplicate创建dg的时候,抛出如上的错误,这里只列出用rman dumplicate的过程,具体操作步骤如下:.
电力系统导纳矩阵计算,MATLAB这学期在上大四专业选修课时,一个课后作业是写一个电力系统的导纳矩阵计算程序,我找了找资料肝了半天的程序如下图所示,希望能对大家有用。程序说明1.具有非标准变比的变压器处理如果变压器阻抗归算到非标准变比的K侧,则在参数输入脚本文件data中变压器参数第五列记为0;如果归算到非标准变比的1侧,则在参数输入脚本文件data中变压器参数第五列记为1。2.线路为双回线时,需要将两个节点之间线路阻抗减半,导纳加倍;同时,如果线路是双回线则在data线路参数中第五列记为1,否