学习Mybatis与mysql数据库的示例笔记
目录结构:
pom.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>xfj.mac</groupId> 8 <artifactId>MyBatisOne</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>pom</packaging> 11 12 <dependencies> 13 <dependency> 14 <groupId>junit</groupId> 15 <artifactId>junit</artifactId> 16 <version>4.12</version> 17 </dependency> 18 <!-- mybatis的依赖配置--> 19 <dependency> 20 <groupId>org.mybatis</groupId> 21 <artifactId>mybatis</artifactId> 22 <version>3.4.5</version> 23 </dependency> 24 <dependency> 25 <groupId>mysql</groupId> 26 <artifactId>mysql-connector-java</artifactId> 27 <version>5.1.28</version> 28 </dependency> 29 </dependencies> 30 31 <build> 32 <plugins> 33 <plugin> 34 <artifactId>maven-compiler-plugin</artifactId> 35 <configuration> 36 <target>1.8</target> 37 <source>1.8</source> 38 <encoding>UTF-8</encoding> 39 </configuration> 40 </plugin> 41 </plugins> 42 </build> 43 44 </project>
mybatis.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 5 <configuration> 6 <!-- 类型别名,意思就是给实体在使用的过程中起一个别名引用 --> 7 <typeAliases> 8 <!-- 方式一:给每一个实体类定义一个别名,通过alias制定别名 --> 9 <!--<typeAlias type="edu.nf.ch01.entity.Users" alias="user"/>--> 10 11 <!-- 方式二:直接给实体所在的包来指定别名,那么别名就是实体的类名, 12 并将首字母变为小写--> 13 <package name="xfj.mybatis.entity"/> 14 </typeAliases> 15 16 <!-- environments用于配置数据源环境,可以同时指定多个数据源环境, 17 通过default属性来指定默认使用的数据源,对应的就是environment的id属性--> 18 <environments default="mysql"> 19 <!-- 每一个environment都是一个独立的数据源环境配置,id指定唯一标识--> 20 <environment id="mysql"> 21 <!-- 指定为使用本地事务,也就是JDBC事务 --> 22 <transactionManager type="JDBC"/> 23 <!-- mybatis本身就内置一个连接池,可以直接使用 --> 24 <dataSource type="POOLED"> 25 <!-- 配置连接信息 --> 26 <property name="driver" value="com.mysql.jdbc.Driver"/> 27 <property name="url" value="jdbc:mysql://192.168.10.17:3306/mac_demo?useUnicode=true&characterEncoding=utf-8&"/> 28 <property name="username" value="root"/> 29 <property name="password" value="123456"/> 30 </dataSource> 31 </environment> 32 </environments> 33 34 <!-- 指定mapper配置文件的相对路径 --> 35 <mappers> 36 <mapper resource="mapper/UserDao.xml"/> 37 </mappers> 38 </configuration>
userDao.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指定要映射的Dao接口的完整类名,通过namespace属性指定--> <mapper namespace="xfj.mybatis.dao.UserDao"><!-- 通过insert节点来映射UserDao中的saveUser方法,id指定接口中的方法名,parameterType指定参数的类型,这里直接引用在mybatis.xml中定义的别名--><!-- 在<insert>标签内部编写相应的sql语句,并指定sql参数,sql参数使用#{属性名}来获取对象中的属性值--><insert id="insertUser" parameterType="user">INSERT INTO MAC_USER VALUES(#{userId},#{userName},#{phone})</insert><!--<!– 如果parameterType是Map类型,那么#{}中的参数对应的是map的key –><insert id="saveUser2" parameterType="java.util.Map">INSERT INTO USER_INFO VALUES(#{uid},#{tel},#{uname})</insert><!– 映射修改语句 –><update id="updateUser" parameterType="users">UPDATE USER_INFO SET U_NAME = #{userName} WHERE U_ID = #{uid}</update> --><!-- <!– 映射删除语句parameterType指定为String类型,也可以是其他的基本数据类型注意:当参数只有一个,并且不是一个实体对象的时候,那么#{}中的变量名可以任意–>--><delete id="deleteUser" parameterType="user">DELETE FROM MAC_USER WHERE user_id = #{userId}</delete></mapper>
User.java
1 package xfj.mybatis.entity; 2 3 public class User { 4 5 private Integer userId ; 6 7 private String userName ; 8 9 private String phone ; 10 11 public Integer getUserId() { 12 return userId; 13 } 14 15 public void setUserId(Integer userId) { 16 this.userId = userId; 17 } 18 19 public String getUserName() { 20 return userName; 21 } 22 23 public void setUserName(String userName) { 24 this.userName = userName; 25 } 26 27 public String getPhone() { 28 return phone; 29 } 30 31 public void setPhone(String phone) { 32 this.phone = phone; 33 } 34 }
UserDao.java
package xfj.mybatis.dao;import xfj.mybatis.entity.User;public interface UserDao {void insertUser(User user) ;void deleteUser(Integer userId) ;}
UserDaoImpl.java
package xfj.mybatis.dao.impl;import org.apache.ibatis.session.SqlSession; import xfj.mybatis.dao.UserDao; import xfj.mybatis.entity.User; import xfj.mybatis.utils.MybatisUtl;public class UserDaoImpl implements UserDao {SqlSession session = MybatisUtl.getSqlSession() ;@Overridepublic void insertUser(User user) {//SqlSession session = MybatisUtl.getSqlSession() ;try {//执行保存操作session.getMapper(UserDao.class).insertUser(user);}catch(RuntimeException e){e.printStackTrace();//事务回滚 session.rollback();}finally{//关闭session session.close();}}@Overridepublic void deleteUser(Integer userId) {try {//执行删除操作session.getMapper(UserDao.class).deleteUser(userId);}catch (RuntimeException e){e.printStackTrace();session.rollback();}finally {session.close();}} }
MybatisUtil.java
package xfj.mybatis.utils;import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream;public class MybatisUtl {/*定义SqlSessionFactory ,用来创建实例化sessionFactory*/private static SqlSessionFactory sqlSessionFactory ;static {try {//通过mybatis核心额配置文件,并创建一个输入流用来读取xml文件InputStream is = Resources.getResourceAsStream("mybatis.xml") ;//创建一个SqlSessionFactoryBuilder构建器来实例化一个SqlSessionFactory,//build方法传入一个输入流来解析配置文件,从而创建SqlSessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(is) ;} catch (IOException e) {e.printStackTrace();throw new RuntimeException("mybatisUtil error!!") ;}}//创建一个获取sqlsession的静态方法public static SqlSession getSqlSession(){return sqlSessionFactory.openSession(true) ;}public static void main(String[] args) {System.out.println(getSqlSession());}}
UserDaoTest.java测试类:
package xfj.mybatis.test;import org.junit.Test; import xfj.mybatis.dao.UserDao; import xfj.mybatis.dao.impl.UserDaoImpl; import xfj.mybatis.entity.User;public class UserDaoTest {/*@Testpublic void insertUser(){User user1 = new User() ;user1.setUserId(13);user1.setUserName("恭喜");user1.setPhone("1265416989");userDao.insertUser(user1);}*/@Testpublic void deleteUser(){UserDao userDao = new UserDaoImpl() ;//User user = new User() ;userDao.deleteUser(4);} }
mybatis入门学习笔记,comeon
转载于:https://www.cnblogs.com/aa1314/p/8618602.html
学习Mybatis与mysql数据库的示例笔记相关推荐
- mybatis mysql schema_学习Mybatis与mysql数据库的示例笔记
目录结构: pom.xml文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 3 xmlns:xsi=&qu ...
- java毕业设计网络学习平台源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计网络学习平台源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计网络学习平台源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈: 项目 ...
- java毕业设计物业信息管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计物业信息管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计物业信息管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技术栈 ...
- java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计企业员工考勤系统的设计与实现源码+lw文档+mybatis+系统+mysql数 ...
- java毕业设计校园互助平台校园帮帮网站源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计校园互助平台校园帮帮网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计校园互助平台校园帮帮网站源码+lw文档+mybatis+系统+mysql数据库+调 ...
- java毕业设计外贸服装订单管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计外贸服装订单管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计外贸服装订单管理系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源 ...
- java毕业设计企业间信息交互系统源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计企业间信息交互系统源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计企业间信息交互系统源码+lw文档+mybatis+系统+mysql数据库+调试 本源码技 ...
- java毕业设计物流信息管理系统录像演示源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计物流信息管理系统录像演示源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计物流信息管理系统录像演示源码+lw文档+mybatis+系统+mysql数据库+调 ...
- java毕业设计微博系统网站源码+lw文档+mybatis+系统+mysql数据库+调试
java毕业设计微博系统网站源码+lw文档+mybatis+系统+mysql数据库+调试 java毕业设计微博系统网站源码+lw文档+mybatis+系统+mysql数据库+调试 开发软件:idea ...
最新文章
- puppet 执行source
- 2021年春季学期-信号与系统-第二次作业参考答案-第六小题
- python中的静态方法和类方法
- rac_安装软件时报版本号过高问题
- CentOS7加入windows 2008 AD域
- asr语音转写_搜狗智能录音笔C1正式上市 语音转文字准确率达95%
- SchemaCrawler 9.4 发布,数据库结构输出
- eclipse svn使用小记
- 表格数据快速转换成SQL语句
- 红蓝对抗之win10 权限提升
- Java的常用集合框架
- NTC热敏电阻温度计算方法,Steinhart-Hart方程和B值法
- 【2022】字节跳动面试真题,1000问(Java岗)
- 微软云存储中国事业部,热招!
- 软件测试结果分析和质量报告
- 计算机网络显示红X无法连接,电脑无线网络连接不上,出现了红x❌
- winform TreeView节点中的CheckBox 禁用
- H3C交换机console口Xshell连接
- HTML制作水波纹,怎样制作水波纹
- ubuntu下向163发送邮件