Mybatis 入门之(1)环境配置+简单例子测试
- 什么是MyBatis?
它是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。
其实简单一点说mybatis就是一直访问数据库的技术,它是现在比较流行的一个持久层框架,如果你对JDBC熟悉那就更容易理解了,mybatis就是对JDBC的封装。
其实学习一个框架不可能一下子全部学会,而是一步一步的学习,先简单的,然后再深入理解,小king也是最近才学习的mybatis,如出错了请大神指点,万分感谢!
好了,说多了也是零,直接上例子吧:
- 前提:
一、安装了eclipse或者myeclipse,JDK.....这些自然不用多说了,百度上一堆。
二、既然mybatis是访问数据库的技术,那么你至少懂一点数据库方面的东东,以下的例子如
果 不特别说明都是基于MYSQL的,因为MYSQL小而精悍,容易安装,方便使用。
如果你还在世纯粹的菜鸟,没写过代码,也没学过什么编程语言的coder,建议你先去学习一
本 java的书籍,这里不推荐什么书了,书没有好坏,只是你看完了能吸取多少?所以mybatis这玩
意建议还是有点编程基础的同志学习吧,也不是没基础的同志不能学,只是这样学起来没那么吃
力。
开发步骤(基于myeclipse+mysql):
一、数据库数据:
- // 创建userinfo表
- CREATE TABLE `userinfo` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `username` varchar(20) NOT NULL,
- `password` varchar(100) NOT NULL,
- `permission` int(1) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
- // 插入一些数据
- INSERT INTO `userinfo` VALUES (‘1‘, ‘34‘, ‘444‘, ‘1‘);
- INSERT INTO `userinfo` VALUES (‘2‘, ‘yyy‘, ‘111‘, ‘0‘);
- INSERT INTO `userinfo` VALUES (‘3‘, ‘jetty‘, ‘111‘, ‘1‘);
- INSERT INTO `userinfo` VALUES (‘4‘, ‘tom‘, ‘123‘, ‘1‘);
- INSERT INTO `userinfo` VALUES (‘5‘, ‘tony‘, ‘123‘, ‘1‘);
二、相关文件如下(将mybatis和mysql的架包复制到lib下):
1. 创建一个java类,作为数据库实体的entity.
User.java :
- package edu.nwsuaf.xc.entity;
- import java.io.Serializable;
- /**
- * @author GhostKing
- * 2015年1月1日
- */
- public class User implements Serializable {
- private Integer id;
- private String username;
- private String password;
- private Integer permission;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Integer getPermission() {
- return permission;
- }
- public void setPermission(Integer permission) {
- this.permission = permission;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", username=" + username + ", password="
- + password + ", permission=" + permission + "]";
- }
- }
2. 创建映射文件userMap.xml,它就是数据库记录和java实体类user的映射。这个文件一般放在和
实体类一个包下。
userMap.xml :
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<!-- namespace命名空间
是用来标唯一的,用在主配置文件中来寻找映射文件的
-->
<mapper namespace="edu.nwsuaf.xc.dao.UserDAO">
<!-- id 标示唯一
parameterType 传入参数的类型
resultType 返回的参数类型
-->
<select id="findById" parameterType="int" resultType="edu.nwsuaf.xc.entity.User">
select * from userInfo where id=#{id}
</select>
<select id="findAllUser" resultType="edu.nwsuaf.xc.entity.User">
select * from userInfo
</select>
<insert id="addUser" parameterType="edu.nwsuaf.xc.entity.User">
insert into userInfo(username,password,permission)
values(#{username},#{password},#{permission})
</insert>
<delete id="deleteUser" parameterType="int">
delete from userInfo where id=#{id}
</delete>
<update id="updateUser" parameterType="edu.nwsuaf.xc.entity.User">
update userInfo
set username=#{username},password=#{password},
permission=#{permission}
where id=#{id}
</update>
</mapper>
3. 主配置文件conf.xml它是mybatis的住主配置文件,放在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>
<!-- default的属性值为:
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/student" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 加载映射文件 此处使用的文件路径/,而不是类路径.-->
<mapper resource="edu/nwsuaf/xc/entity/userMap.xml" />
</mappers>
</configuration>
其中需要自己修改的是数据源中的driver,url,username,password.另外在mappers下加载自己写的映射文件,其他的不需要变动。
4. 由于每次都需要获取链接,在此封装为一个util。
MyBatisUtil.java :
package edu.nwsuaf.xc.util;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* @author GhostKing
* 2015年1月1日
*/
public class MyBatisUtil {
/**
* 获取session
* @param confPath
* @return
*/
public static SqlSession getSession(){
String confPath = "config.xml";
SqlSessionFactory factory = new
SqlSessionFactoryBuilder().
build(MyBatisUtil.class.getClassLoader().getResourceAsStream(confPath));
return factory.openSession();
}
}
5. 测试,测试的模块较多时,建议采用jUnit的Test,如果不熟悉也可以用main方法写了测试。下面是简单的id查询,查询所有,增加,删除一条记录的测试代码:
TestUser.java :
package edu.nwsuaf.xc.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import edu.nwsuaf.xc.entity.User;
import edu.nwsuaf.xc.util.MyBatisUtil;
/**
* @author GhostKing
* 2015年1月1日
*/
public class TestUser {
@Test
public void testFindById() {
SqlSession session = MyBatisUtil.getSession();
String statement = "edu.nwsuaf.xc.dao.UserDAO"+".findById";
User user =session.selectOne(statement, 2);
System.out.println(user);
}
@Test
public void testUpdateUser() {
SqlSession session = MyBatisUtil.getSession();
String statement = "edu.nwsuaf.xc.dao.UserDAO"+".updateUser";
User user = new User();
user.setId(2);
user.setPassword("123456");
user.setUsername("maary");
user.setPermission(1);
int update = session.update(statement, user);
// 提交事务,也可以设置自动提交session.commit(true);
session.commit();
System.out.println(update);
// 关闭链接
session.close();
}
@Test
public void testAddUser() {
SqlSession session = MyBatisUtil.getSession();
session.commit(true);;
String statement = "edu.nwsuaf.xc.dao.UserDAO"+".addUser";
User user = new User();
user.setPassword("454545");
user.setUsername("kkkkk");
user.setPermission(1);
int insert = session.insert(statement, user);
System.out.println(insert);
session.close();
}
@Test
public void testFindAll() {
SqlSession session = MyBatisUtil.getSession();
String statement = "edu.nwsuaf.xc.dao.UserDAO"+".findAllUser";
List<User> users = session.selectList(statement);
for(User user : users){
System.out.println(user);
}
}
@Test
public void testDelete(){
SqlSession session = MyBatisUtil.getSession();
String statement = "edu.nwsuaf.xc.dao.UserDAO"+".deleteUser";
User user = new User();
user.setId(8);
session.delete(statement, user);
session.commit();
System.out.println("delete ok");
session.close();
}
}
最终的过程结构图:
mybatis入门学习之(1)+简单例子测试
时间: 2024-11-03 21:26:30
mybatis入门学习之(1)+简单例子测试的相关文章
MyBatis入门学习(二)
在MyBatis入门学习(一)中我们完成了对MyBatis简要的介绍以及简单的入门小项目测试,主要完成对一个用户信息的查询.这一节我们主要来简要的介绍MyBatis框架的增删改查操作,加深对该框架的了解.环境测试是上一节中的测试环境.在此感谢博主提供的资料. 一.通过MyBatis持久层框架完成对数据库表的增删改查操作——基于XML的实现 1.定义sql文件的映射文件,userMapper文件内容如下: <?xml version="1.0" encoding="UTF
Mybatis入门学习篇(三)之模糊查询的两种写法
在上一讲(Mybatis入门学习篇(二)之基于注解的增删改查)中,需要用到模糊查询,比如我想查找所有含有'zjh'的Student的信息.如果是在数据库中,那么我们可以方便的使用通配符%:select * from student where name like '%zjh%' .但是如果在mybatis中直接像sql中那样,就会报错.遂百度,无果,偶然在一篇帖子中看到,遂记录下来,以备后用. 方法一: 在要查询的字符串合适位置加上%,如这里的'zjh'就应该为'%zjh%'.这是一个很管用的方
mybatis入门学习
一.mybaits简介 java程序中常用的数据库框架. 二.mybait入门学习 1.环境 创建一个java或者javaweb项目:我是创建了一个structs项目,helloworld 2.添加相应的jar包
Jmeter 快速入门教程(二)--创建简单web测试
[版权所有: whoistester.com & jmeter.cf] 今天我们就来实际用Jmeter创建一个测试场景,并进行性能测试. 注:由于本人使用中文版本,使用英文版本的请注意具体的菜单及参数名称. 1. 添加线程组(相当于lr里的scenario 设置) 打开jmeter主窗口后, 选择左侧树形结构里的"测试计划". 然后右键选择添加, 选择"threads(users)",我们可以看到 [email protected]开头的是google jm
Mybatis入门学习(一)
1.MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. 需要在Github上下载!地址:https://github.com/mybatis/mybatis-3 当前的最新版本是MyBatis 3.5.4! 我们可以在其官网上查看文档进行学习!地址:https://mybatis.org/myba
MyBatis入门学习教程-调用存储过程
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10), 4 sex char(2) 5 ); 6 7 insert into p_user(name,sex) values('A',"男"); 8 insert into p_user(name,sex) values('B',&qu
MyBatis笔记----MyBatis 入门经典的两个例子: XML 定义与注解定义
----致敬MyBatis官方开放文档让大家翻译,不用看书直接看文档就行了,mybatis的中文文档还需要完备的地方 简介 什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.
mybatis 入门学习
所需要jar包:mybatis-3.x.x.jar .如果需要和spring整合,还需要加入相关的包 1:看项目目录 红颜色不要关心 2:按照步骤: 1:加入jar包 2:创建数据源(configuration.xml)创建数据库(此处省略) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config
MyBatis入门学习(三)
在实际开发中,我们希望文件配置是分类配置存放,需要的时候引入即可.如果多文件的配置混合配置使用,那么对项目的后期维护将增加难度. 一.对于连接数据库的配置单独放在一个properties文件中 1.对于之前的配置我们是将数据库配置放置在conf.xml文件中,如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//