新建项目



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:在数据插入之前还是插入之后返回-->
<!-- &ndash;&gt;-->
<!-- <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的更多相关文章

  1. 搭建Spring + SpringMVC + Mybatis框架之一(创建项目)

    创建项目 用maven管理项目很方便,不用手动下载jar包,直接在pom.xml配置文件中,maven可以帮助我们自动下载,非常方便 新建一个web project,添加maven支持就可以了,这样创 ...

  2. IDEA创建Spring+SpringMVC+MyBatis(SSM)极简入门(上)

    1.  创建项目 2.  添加Controller 3.  pom+ properties+swager 4.  添加Mysql+ Mybatis 5.  调用Mybatis生成Mapper 1.创建 ...

  3. SSM实战——秒杀系统之创建项目、管理依赖、设计数据库

    注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个 ...

  4. Intellij从无到有创建项目

    Intellij虽然提供了很多模板可以创建maven web javaee等等各种项目,但是你知道项目从无到有到底怎么来的,各个配置分别是做什么的?现在就来一步步说明. 1.idea打开一个空文件夹: ...

  5. Maven项目使用mybatis报错 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

    maven项目使用mybatis时,找不到mapper文件(.xml) 错误信息提示: 项目可以正常运行,但是在有请求到达服务器时(有访问数据库的请求),会出现报错!! 错误原因: mybatis没有 ...

  6. 使用springboot实现一个简单的restful crud——01、项目简介以及创建项目

    前言 之前一段时间学习了一些springboot的一些基础使用方法和敲了一些例子,是时候写一个简单的crud来将之前学的东西做一个整合了 -- 一个员工列表的增删改查. 使用 restful api ...

  7. idea创建项目和依赖

    创建项目和依赖 项目搭建完成后打开web.xml可看到如图使用的是servlet2.3,但版本太老,servlet2.3 jsp  的el表达式不工作,所以我们需要切换新版本. 切换新版本方法:打开t ...

  8. JAVA - SpringBoot项目引用MyBatis操作数据库

    JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...

  9. springboot项目整合mybatis

    记录创建springboot项目并配置mybatis中间件: 资源准备及版本说明 编程工具:IDEA JDK版本:1.8 Maven版本:Apache Maven 3.6.3 springboot版本 ...

随机推荐

  1. this的指向问题及改变this指向

    概念: this是运行环境下的一个系统变量, 由于this在不同的执行环境下有不同的值, 所以在使用this时,多加注意 (使用this之前,先打印) 1,在全局作用域下,this默认指向window ...

  2. js字符串常用的方法总结,及其用法

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  3. MKL库矩阵乘法

    此示例是利用Intel 的MKL库函数计算矩阵的乘法,目标为:\(C=\alpha*A*B+\beta*C\),由函数cblas_dgemm实现: 其中\(A\)为\(m\times k\)维矩阵,\ ...

  4. 忘记VMware vcenter的Administrator@vsphere.local密码

    忘记VMware vcenter的Administrator@vsphere.local密码的解决办法一. 重置密码:ssh root@192.168.230.100Connecting to 192 ...

  5. [AcWing 68] 0到n-1中缺失的数字

    点击查看代码 class Solution { public: int getMissingNumber(vector<int>& nums) { if (nums.empty() ...

  6. 卧槽!华为《Linux中文手册》火了,完整版 PDF 开放下载!

    这是华为工程师基于最新的Linux编写,循序渐进地对Linux进行讲解.对于零基础可以作为Linux的快速入门教材.我希望能为大家提供切实的帮助. 资料介绍 涵盖基础.系统管理.应用.开发.服务器配置 ...

  7. 为什么 IPv6 难以取代 IPv4

    网络层协议承担了分组(Packet)转发和路由选择两大功能,它能够为上层提供在不同主机之间运输分组的职责,IP 协议作为网络层协议,它虽然只能提供无连接的.不可靠的服务,但是它在今天的互联网中起到了极 ...

  8. 云厂商 RDS MySQL 怎么选

    1. 摘要 为了让大家更好的了解各云厂商在RDS MySQL数据库功能上的差异,也为给准备上云的同学做个参考,本文将对阿里云.腾讯云.华为云和AWS 的 RDS MySQL数据库进行对比说明. 从一个 ...

  9. 前后端分离,SpringBoot如何实现验证码操作

    验证码的功能是防止非法用户恶意去访问登录接口而设置的一个功能,今天我们就来看看在前后端分离的项目中,SpringBoot是如何提供服务的. SpringBoot版本 本文基于的Spring Boot的 ...

  10. Mac-Typora快捷键

    标题(大钢) command+(1-6)) 如:command+1,设置为一级标题 引用 快捷键:command+option+Q 或者:先">",后面直接加内容 二级引用: ...