新建项目



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. 如何使用Android可视化埋点

    Android可视化埋点是Android全埋点的增强.开发者可以将App界面同步至DTM界面,并在DTM界面通过可视化点击的方式添加埋点事件.目前Android可视化埋点包含两种埋点方式:普通可视化埋 ...

  2. 攻防世界 favorite_number

    favorite_number 进入环境得到源码 <?php //php5.5.9 $stuff = $_POST["stuff"]; $array = ['admin', ...

  3. springdata jpa多表查询的方式

    方式一:使用@Query注解方式查询主要有JPQL方式,也就是面向对象的方式,这种情况下查表其实查的是对象,字段是实体中的属性,该方式可以直接映射到实体,如下图. 使用jpql的方式模糊查询时候不能使 ...

  4. GopherCon SG 2019 "Understanding Allocations" 学习笔记

    本篇是根据 GopherCon SG 2019 "Understanding Allocations" 演讲的学习笔记. Understanding Allocations: th ...

  5. 推荐个我在用的免费翻译软件,支持多家翻译API整合

    前段时间发了个关于<Spring支持PHP>的视频:点击查看 然后有小伙伴留言说:"你这个翻译好像很好用的样子". 的确,我自己也觉得很好用.之前视频没看过的不知道是哪 ...

  6. docker基础_docker引擎内部原理

    docker引擎内部原理 docker主要由以下主要组件构成:docker客户端.docker守护进程(daemon).containerd.runc.shim daemon daemon的主要功能包 ...

  7. switch 和 if else if else 有什么区别

    1.  一般情况下,它们两个语句可以相互替换 2.  switch..case语句通常处理case为比较确定值的情况,而if...else...语句更加灵活,常用于范围判断(大于.等于某个范围) 3. ...

  8. 联邦平均算法(Federated Averaging Algorithm,FedAvg)

    设一共有\(K\)个客户机, 中心服务器初始化模型参数,执行若干轮(round),每轮选取至少1个至多\(K\)个客户机参与训练,接下来每个被选中的客户机同时在自己的本地根据服务器下发的本轮(\(t\ ...

  9. 全场景AI推理引擎MindSpore Lite, 助力HMS Core视频编辑服务打造更智能的剪辑体验

    移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog.短视频等为代表的新兴文化样态正受到越来越多人的青睐.同时,随着AI智能.美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率 ...

  10. ZooKeeper 到底解决了什么问题?

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 目标 ZooKeeper 很流行,有个基本的疑问: Zo ...