maven&Mybatis
目录
maven&Mybatis
文章目录
一、maven
1.1作用
1.2仓库
1.3命令
1.4依赖范围
1.5生命周期
二、MyBatis
2.1简介
2.2API
2.3增删改的实现&案例
总结
一、maven
1.1作用
统一项目结构;项目构建:通过简单命令,就可以完成项目的整个构建过程;
依赖管理:通过坐标的方式导入jar包过程
1.2仓库
本地仓库:每个开发者电脑,都需要有一个本地仓库
中央仓库:公网
私服:公司内部
IDEA配置maven工具:全局settings配置:指定maven工具路径、指定maven工具配置文件路径、指定maven工具本地仓库的路径
1.3命令
clean:清除编译后的文件就是删除target文件夹
compile:编译项目
test: 执行junit测试代码
package:把项目打成jar包
install:把打好的包放到本地仓库
deploy:把打好的包放到私服上
1.4依赖范围
* compile(默认):默认依赖范围,作用域在编译、测试、运行时都有效。
* test:作用域在测试时有效。编译和运行时不需要,比如:Junit。
* provided:作用域在编译、测试时有效。运行时不需要,比如: servlet-api 被 tomcat 容器提供。
* runtime:作用域在测试、运行时有效。编译时不需要,比如:jdbc的驱动包。
1.5生命周期
Maven的命令是有先后顺序的,执行后面的命令会自动执行前面的命令
举例: 我执行了package命令就自动会执行 compile test
二、MyBatis
2.1简介
mybatis向数据库发送SQL语句
2.2API
Resources:加载核心配置文件
SqlSessionFactoryBuilder:构建工厂对象
SqlSessionFactory:生产会话对象
SqlSession:实现与数据库CRUD操作
2.3增删改的实现&案例
user表:
user类的定义
代码如下:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
private Integer age;
private Integer gender;
private String phone;
}
userMapper接口实现增删改方法
代码如下:
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Update;
public interface UserMapper {
@Insert("insert into user values (null,#{name},#{age},#{gender},#{phone})")
void save(User user);
@Update("update user set name=#{name},age=#{age},gender=#{gender},phone=#{phone} where id=#{id}")
void updateById(User user);
@Delete("delete from user where id = #{id}")
void deleteById(Integer id);
}
MybatisUtil工具类
代码如下:
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 MybatisUtil {
static SqlSessionFactory sqlSessionFactory = null;
static {
//1. 使用mybatis将user对象保存到数据库(步骤不重要, 不用记)
//1-1 读取配置文件,读成一个输入流
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//1-2 创建SqlSessionFactory对象
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static SqlSession getSqlSession(){
//1-3 获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
public static void commitAndClose(SqlSession sqlSession){
//1-5 提交事务
sqlSession.commit();
//1-6 释放资源
sqlSession.close();
}
}
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>
<settings>
<!--在控制台输出发送的sql日志-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--目前只关注这部分内容,它的作用就是声明要连接的数据信息-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="****"/>
<property name="password" value="****"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--声明含有sql的接口所在包-->
<package name="com.*****.mapper"/>
</mappers>
</configuration>
测试类
代码如下:
public class UserMapperTest {
@Test
public void testSave() throws IOException {
User user = new User();
user.setName("李四");
user.setAge(30);
user.setGender(0);
user.setPhone("13800000034");
SqlSession sqlSession = MybatisUtil.getSqlSession();
//1-4 获取UserMapper对象,调用方法
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.save(user);
MybatisUtil.commitAndClose(sqlSession);
}
@Test
public void testUpdate() throws IOException {
User user = new User();
user.setId(1);
user.setName("王五");
user.setAge(33);
user.setGender(1);
user.setPhone("13800000044");
SqlSession sqlSession = MybatisUtil.getSqlSession();
//1-4 获取UserMapper对象,调用方法
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.updateById(user);
MybatisUtil.commitAndClose(sqlSession);
}
@Test
public void testDelete() throws IOException {
SqlSession sqlSession = MybatisUtil.getSqlSession();
//1-4 获取UserMapper对象,调用方法
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteById(6);
MybatisUtil.commitAndClose(sqlSession);
}
}
总结
以上就是今天学习的内容。