新建项目



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. linux磁盘概述

    硬盘简史 世界上第一块硬盘出生在1956年,至今已有61年半个多世纪的历史.它由IBM公司制造,世界上第一块硬盘:350RAMAC.盘片直径为24英寸,盘片数为50片,重量则是上百公斤,相当于两个冰箱 ...

  2. Java学习day38

    Java内存:1.堆:存放new的对象和数组:可以被所有线程共享,不会存放别的对象引用 2.栈:存放基本变量类型(会包含这个基本类型的具体数值):存放对象的变量(会存放这个引用在堆里面的具体地址) 3 ...

  3. vue 跨域配置代理 get/post 请求

    1.第一步要有 axios 插件 : npm i axios 首先要在自己的项目手动添加一个文件 vue.config.js 个人理解的为 这是axios 封装的跨域文件. 2.vue.config. ...

  4. 【简单dfs】Bubble Cup 14 - Finals Online Mirror (Unrated, ICPC Rules, Teams Preferred, Div. 2), problem: (J) Robot Factory,

    传送门  Problem - 1600J - Codeforces 题目   题意 给定n行m列, 求每个连通块由多少格子组成,并将格子数从大到小排序输出 对于每个格子都有一个数(0~15),将其转化 ...

  5. JavaScript基础第01天笔记

    JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...

  6. Linux用命令设置终端背景色和字体颜色

    用命令改 1.setterm -inversecreen on 背景字体颜色互换 2.setterm -inversecreen on 恢复默认 3.setterm -[选项] [参数] |-back ...

  7. 基于Ansible实现Apache Doris快速部署运维指南

    Doris Ansible 使用指南 Apache Doris 介绍 Apache Doris是一个现代化的MPP分析型数据库产品.仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析.Apac ...

  8. 攻防世界-MISC:stegano

    这是攻防世界新手练习区的第五题,题目如下: 点击附件1下载,得到一个pdf文件,打开后内容如下: 把pdf文件里的内容复制到记事本上,发现一串A和B的字符串,不知道是什么(真让人头大) 参考一下WP, ...

  9. 【PyTorch】常用的神经网络层汇总(持续补充更新)

    1. Convolution Layers 1.1 nn.Conv2d (1)原型 torch.nn.Conv2d(in_channels, out_channels, kernel_size, st ...

  10. HashMap中红黑树插入节点的调整过程

    如果有对红黑树的定义及调整过程有过研究,其实很容易理解HashMap中的红黑树插入节点的调整过程. "红黑树定义及调整过程"的参考文章:<红黑树原理.查找效率.插入及变化规则 ...