javaEE-IDEA创建项目-使用Mybatis
新建项目

点Next之后给项目命名
创建如下文件夹以及文件

修改pom.xml, 加入
<dependencies>
<!-- junit单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- 整合log4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
</dependencies>
dao 文件夹用于写对应sql语句的接口
domain 用于写对应数据库表属性的DataBean类
mapper 文件夹用于存写sql语句的xml文件
log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
mybatis-config.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 >
<!-- 设置属性 -->
<properties>
<!-- 指定连接器, 一般不用改-->
<property name="driver" value="com.mysql.jdbc.Driver" />
<!-- 指定数据库-->
<property name="dataset" value="jdbc:mysql://localhost:3306/javaee_exp?characterEncoding=utf-8"/>
<!-- 指定用户-->
<property name="user" value="root"/>
<!-- 用户密码-->
<property name="pwd" value="pwd"/>
</properties>
<!-- 配置开发环境 -->
<environments default="develop">
<environment id="develop">
<!-- 1.1指定事务管理 将事物交给JDBC来管理 -->
<transactionManager type="JDBC"/>
<!-- 1.2datasource(数据源/连接池,)指定链接数据库的基本信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${dataset}"/>
<property name="username" value="${user}"/>
<property name="password" value="${pwd}"/>
</dataSource>
</environment>
</environments>
</configuration>
实践
假设数据库有如下表

对应domain的User类
package com.domain;
import java.io.Serializable;
public class User implements Serializable {
private int id;
private String firstName;
private String lastName;
private int salary;
public User() {}
public User(int id, String firstName, String lastName, int salary) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", firstName='" + firstName + '\'' +
", lastName='" + lastName + '\'' +
", salary=" + salary +
'}';
}
}
对应dao的UserDao2接口
package com.dao;
import com.domain.User;
import java.util.List;
public interface UserDao2 {
List<User> findAll();
User getUserById(int id);
}
对应mapper的UserDao2.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="com.dao.UserDao2">
<!-- select是查询标签,用来提供查询语句的支持 -->
<!-- id绑定接口内的实现方法名 -->
<!-- resultType指定返回值的数据类型,如果返回值是一个集合,则填入该集合的泛型对象 -->
<select id="findAll" resultType="com.domain.User">
SELECT * FROM demo1;
</select>
<!-- 使用设置的别名-->
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM demo1 WHERE id=#{id};
</select>
<!-- 以下为其他方式, 不对应这次的数据库-->
<!-- JAVA类型-->
<!-- <select id="selectUserByName" parameterType="java.lang.String"-->
<!-- resultType="User">-->
<!-- select * from user where account like '%${value}%'-->
<!-- </select>-->
<!-- <insert id="insertUser3" parameterType="com.isoftstone.mybatis.pojo.User">-->
<!-- keyProperty:返回的主键存储在javaBean中的哪个属性-->
<!-- resultTyoe:返回的主键是什么类型-->
<!-- order:在数据插入之前还是插入之后返回-->
<!-- –>-->
<!-- <selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE" >-->
<!-- select sys_guid() from dual-->
<!-- </selectKey>-->
<!-- insert into user-->
<!-- (id,username,birthday,sex,address)-->
<!-- values-->
<!-- (#{id},#{username},#{birthday},#{sex},#{address})-->
<!-- </insert>-->
</mapper>
修改mybatis-config.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 >
<!-- 设置属性 -->
<properties>
<!-- 指定连接器, 一般不用修改-->
<property name="driver" value="com.mysql.jdbc.Driver" />
<!-- 指定数据库-->
<property name="dataset" value="jdbc:mysql://localhost:3306/javaee_exp?characterEncoding=utf-8"/>
<!-- 指定用户-->
<property name="user" value="root"/>
<!-- 用户密码-->
<property name="pwd" value="pwd"/>
</properties>
<!-- 新增, 可不用-->
<!-- 配置别名-->
<typeAliases>
<typeAlias type="com.domain.User" alias="User"/>
<package name="com.domain"/>
</typeAliases>
<!-- 配置开发环境 -->
<environments default="develop">
<environment id="develop">
<!-- 1.1指定事务管理 将事物交给JDBC来管理 -->
<transactionManager type="JDBC"/>
<!-- 1.2datasource(数据源/连接池,)指定链接数据库的基本信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${dataset}"/>
<property name="username" value="${user}"/>
<property name="password" value="${pwd}"/>
</dataSource>
</environment>
</environments>
<!-- 新增, 用于映射-->
<!-- 导入mapper文件(sql语句) -->
<mappers>
<!-- 两种方法-->
<!-- resource文件的xml文件-->
<mapper resource="mapper/UserDao2.xml"/>
<!-- 类, 主要适用于使用注解写sql语句的情况-->
<mapper class="com.dao.UserDao"/>
</mappers>
</configuration>
test文件夹下新建测试类
package com.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import com.dao.UserDao2;
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 org.junit.Before;
import org.junit.Test;
import com.dao.UserDao;
import com.domain.User;
public class MybitsTest1 {
private SqlSession session = null;
@Before /*注解标记的方法会在@Test注解标记的方法之前执行*/
public void testBefore() throws IOException {
//读取mybatis核心配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
// 获取SqlSessionFactory工厂对象
SqlSessionFactory fac =
new SqlSessionFactoryBuilder().build(in);
// 获取sqlsesssion对象
session = fac.openSession(true);//true表示自动提交事物,false表示手动提交事务
}
/*接口开发*/
@Test
public void testFindAll01() throws IOException {
// 注解测试
// UserDao mapper = session.getMapper(UserDao.class);
// List<User> list = mapper.findAll();
// for (User emp : list) {
// System.out.println(emp.toString());
// }
// mapper.insertValue(5, "dd", "gg", 300);
// xml测试
UserDao2 mapper = session.getMapper(UserDao2.class);
List<User> list = mapper.findAll();
for (User emp : list) {
System.out.println(emp.toString());
}
System.out.print("-->");
System.out.println(mapper.getUserById(4).toString());
}
}
结果

javaEE-IDEA创建项目-使用Mybatis的更多相关文章
- 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)
创建项目 用maven管理项目很方便,不用手动下载jar包,直接在pom.xml配置文件中,maven可以帮助我们自动下载,非常方便 新建一个web project,添加maven支持就可以了,这样创 ...
- IDEA创建Spring+SpringMVC+MyBatis(SSM)极简入门(上)
1. 创建项目 2. 添加Controller 3. pom+ properties+swager 4. 添加Mysql+ Mybatis 5. 调用Mybatis生成Mapper 1.创建 ...
- SSM实战——秒杀系统之创建项目、管理依赖、设计数据库
注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个 ...
- Intellij从无到有创建项目
Intellij虽然提供了很多模板可以创建maven web javaee等等各种项目,但是你知道项目从无到有到底怎么来的,各个配置分别是做什么的?现在就来一步步说明. 1.idea打开一个空文件夹: ...
- Maven项目使用mybatis报错 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
maven项目使用mybatis时,找不到mapper文件(.xml) 错误信息提示: 项目可以正常运行,但是在有请求到达服务器时(有访问数据库的请求),会出现报错!! 错误原因: mybatis没有 ...
- 使用springboot实现一个简单的restful crud——01、项目简介以及创建项目
前言 之前一段时间学习了一些springboot的一些基础使用方法和敲了一些例子,是时候写一个简单的crud来将之前学的东西做一个整合了 -- 一个员工列表的增删改查. 使用 restful api ...
- idea创建项目和依赖
创建项目和依赖 项目搭建完成后打开web.xml可看到如图使用的是servlet2.3,但版本太老,servlet2.3 jsp 的el表达式不工作,所以我们需要切换新版本. 切换新版本方法:打开t ...
- JAVA - SpringBoot项目引用MyBatis操作数据库
JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...
- springboot项目整合mybatis
记录创建springboot项目并配置mybatis中间件: 资源准备及版本说明 编程工具:IDEA JDK版本:1.8 Maven版本:Apache Maven 3.6.3 springboot版本 ...
随机推荐
- Map的key是否可重复
我们都知道Map的一大特性是key唯一不可重复,可是真的是这样的吗? 我们来试验一下: 运行结果: 我们可以看到在map里有两个同样的person作为key,打破了map的key不可重复的特性. 我们 ...
- 使用nmtui命令解决network-scripts目录下无网卡对应配置文件问题
//网卡通过命令ifconfig可以识别到,但是在配置文件目录下,没有该文件,一旦重启等配置了该地址的应用则可能会出现问题所以需要重新生成对应配置文件,我首先想到的就是用 nmtui 这个程序来重新生 ...
- echarts饼图禁止鼠标悬浮高亮
将高亮时的颜色和原本颜色手动设置成相同的值,把series.data里的itemStyle属性进行设置 代码如下: option = { color:['#3498db','#EEEEEE'], se ...
- Cocos Creator绕远做圆周运动,且变换运动物体的角度
需求:绕远做圆周运动 并且精灵的角度要随着位置的改变而改变 网上有很多做圆周运动的代码,但是要不然就是角度不变 要不然就是cocos版本老旧 摘了一段3.x的圆周运动,自己加了角度变换 圆周运动,已知 ...
- Go xmas2020 学习笔记 10、Slices in Detail
10-Slices in Detail. Slice. Empty vs nil slice
- 微信小程序一些标签
wxml标签 一.视图容器(View Container): 二.基础内容(Basic Content) 标签名 说明 标签名 说明 view 视图容器 icon 图标 scroll-view ...
- 输入一个字符串,内有数字和非数字字符。例如:a123x456 17960 302tab5876。将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1]……统计共有多少个整数,并输出这些数。
题目内容:输入一个字符串,内有数字和非数字字符.例如:a123x456 17960 302tab5876.将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在a[0],456放在a[1 ...
- windows使用命令行终止端口的进程
C:\Users\fxz>netstat -ano | find "8093" TCP 0.0.0.0:8093 0.0.0.0:0 LISTENING 3956 TCP [ ...
- 推荐一款数据mock框架,无需任何依赖,贼牛逼
fox-mock 是基于Java Agent实现的自测,联调Mock利器.能解决你的这些问题: 开发过程中,依赖了下游多个接口,想跑个单测都必须得等下游把服务部署好 联调过程中,下游某个接口出问题,阻 ...
- 基于STM32+华为云IOT设计智能称重系统
摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...