个人学习笔记--MyBatis-的搭建及第一个程序
1、导入Jar包
2、设置全局配置文件
<?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>
<typeAliases>
<!--给实体类起一个别名 user -->
<typeAlias type="cn.sky.bookshop.beans.User" alias="User" />
</typeAliases>
<!--数据源配置 这块用 mysql数据库 -->
<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/ibatis" />
<property name="username" value="root" />
<property name="password" value="215890" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="User.xml" />
<mapper resource="UserMapper.xml" />
</mappers>
</configuration>
3、编写Javabean
package cn.sky.bookshop.beans;
public class User {
private int id;
private String userName;
private String password;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User [email=" + email + ", id=" + id + ", password=" + password
+ ", username=" + userName + "]";
}
}
4、配置映射文件、
<?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">
<!-- 添加记录 parameterType传入参数类型-->
<insert id="insertUser" parameterType="User">
insert into
t_user(id,username,password,email)values(#{id},#{userName},#{password},#{email});
</insert>
<!-- resultType返回参数类型 -->
<select id="findUserByName" parameterType="string" resultType="User">
select * from t_user where username=#{userName};
</select> <delete id="deleteUserById" parameterType="int">
delete from t_user
where id=#{id};
</delete> <update id="updateUser" parameterType="User">
update t_user set
username=#{userName},password=#{password},email=#{email} where
id=#{id};
</update> </mapper>
5、dao接口
package cn.sky.bookshop.dao;
import cn.sky.bookshop.beans.User;
public interface UserDao {
public User findUserByName(String username);
public void insertUser(User user);
public void deleteUserById(int id);
public void updateUser(User user);
}
6、dao实现
package cn.sky.bookshop.dao; import org.apache.ibatis.session.SqlSession; import cn.sky.bookshop.beans.User;
import cn.sky.bookshop.utils.MyBatisUtil; public class UserDaoImpl implements UserDao {
//查找
public User findUserByName(String username) {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
User user = sqlSession.selectOne("test.findUserByName",username);
sqlSession.close();
return user;
}
//插入
public void insertUser(User user) {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
sqlSession.insert("test.insertUser", user);
sqlSession.commit();
sqlSession.close();
}
//删除
public void deleteUserById(int id){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
sqlSession.delete("test.deleteUserById", id);
sqlSession.commit();
sqlSession.close();
}
//更新
public void updateUser(User user){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
sqlSession.update("test.updateUser", user);
sqlSession.commit();
sqlSession.close();
}
}
7、前面还少了个工具类....MyBatisUtil
package cn.sky.bookshop.utils; import java.io.IOException; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public final class MyBatisUtil { private static SqlSessionFactory sessionFactory;
private static String resource = "configuration.xml"; static{
try {
sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
// sessionFactory.getConfiguration().addMapper(UserDao.class);
} catch (IOException e) {
e.printStackTrace();
}
} public static SqlSession getSqlSession(){
return sessionFactory.openSession();
}
}
8、Dao测试类
package cn.sky.bookshop.test; import cn.sky.bookshop.beans.User;
import cn.sky.bookshop.dao.UserDao;
import cn.sky.bookshop.dao.UserDaoImpl; public class UserDaoImplTest { public static UserDao userDao = new UserDaoImpl(); public static void main(String[] args) {
// addUser();
// findUser();
// deleteUser();
updateUser();
} public static void addUser(){
User user = new User();
user.setUserName("李四");
user.setPassword("zhangsanw2");
user.setEmail("zserw@qq.com2");
userDao.insertUser(user);
} public static void findUser(){
User user = userDao.findUserByName("李四");
System.out.println(user);
} public static void deleteUser(){
userDao.deleteUserById(3);
} public static void updateUser(){
User user = new User();
user.setId(2);
user.setUserName("小吴");
user.setPassword("xiaowu");
user.setEmail("abc@qq.com2");
userDao.updateUser(user);
} }
个人学习笔记--MyBatis-的搭建及第一个程序的更多相关文章
- 使用IDEA写Python之pytest环境搭建及第一个程序编写
一.准备篇 Python环境:3.8.3 开发工具:IDEA,对你没有看错 二.IDEA下安装开发环境 1. python的下载 https://www.python.org/downloads/ P ...
- SpringBoot环境搭建及第一个程序运行(详细!)
spring boot简介 spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程. 所以采用Spring boot可以非常容易和快速地创建基于Spring 框架的 ...
- FFmpeg 开发环境搭建及第一个程序 Hello FFmpeg 编写
1. FFmpeg 的安装 ./configure make make install 默认会将 FFmpeg 安装至 /usr/local 目录下(可通过 configure 使用 "-p ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld
scala 入门Eclipse环境搭建及第一个入门经典程序HelloWorld 学习了: http://blog.csdn.net/wangmuming/article/details/3407911 ...
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- ArcGIS API for JavaScript开发环境搭建及第一个实例demo
原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...
- QML学习笔记(五)— 做一个简单的待做事项列表
做一个简单的QML待做事项列表,能够动态添加和删除和编辑数据 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(五)— 做一个待做事项列表 主要用到QML:ListView 效果 全部代 ...
- go语言,golang学习笔记4 用beego跑一个web应用
go语言,golang学习笔记4 用beego跑一个web应用 首页 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/ 更新的命令是加个 -u 参数,g ...
随机推荐
- C++ ORM ODB 入门(三)
本节介绍ODB的事务与 异常. 数据库操作经常涉及到操作多个表格,或者表格中的多行数据.因此必须保证整个过程是原子性的.ODB为数据库的事务提供了易于使用的接口. 使用odb::databse的相关方 ...
- schedule
cocos2d-x(时间调度) 在游戏中,时常需要隔一段时间更新一些数据或者是人物位置,Cocos2D-x 中提供了这些时间调度的函数,所有CCNode 类的子类都有这样的函数. schedule(s ...
- Java中的编码问题
下面将侧重介绍java乱码是如何产生的.存在哪些乱码的情况.该如何从根本上解决乱码问题.各位随博主一起征服令人厌烦的java乱码问题吧!!! 一.Java编码转换过程 我们总是用一个java类文件和用 ...
- JavaScript平常会跳的坑系列(一)
function Foo() { //定义foo函数 getName = function () { console.log('1');}; console.log(this); return thi ...
- C#微信公众号开发 -- (二)验证成为开发者
接下来就是验证成为开发者了.先来看一下验证的界面及需要填写的信息 在接口配置信息中填写需要处理验证信息的页面或者一般性处理文件,这里以aspx页面为例 URl中的格式为:http://XXX.com/ ...
- 无可匹敌的创建job(细化很多细节)
declare jobno binary_integer ; rm_days number := 15; --保留多少天的数据,单位天数 rm_hour ...
- angularJS--神奇的$scope
我们在使用angularJS时,$scope对于angularJS是非常重要的,它是angularJS的基础,但$scope到底是什么呢?下面进行一些介绍. 1.$scope是一个普通的js对象 2. ...
- IntelliJ IDEA14 和 Maven 系列:使用IntelliJ IDEA 14和Maven 7 创建java web项目(一)
Intellij IDEA作为最好的Java IDE,创建Maven项目还是比较简单的,但是创建一个Maven Web项目还是要修改一些配置的,下面进行总结整理. 1前言 在创建项目中,IDEA提供了 ...
- POJ 2711 Regular Words(DP + 高精度)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1711 题目大意:给定一个正整数n,产生一个3*n位长的串,要求这个串 ...
- ASP.NET的GET和POST方式的区别归纳总结
表单提交中,ASP.NET的Get和Post方式的区别归纳如下 几点: 1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指 ...