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 configurationPUBLIC "-//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 {@Testpublic 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);}@Testpublic 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);}@Testpublic void testDelete() throws IOException {SqlSession sqlSession = MybatisUtil.getSqlSession();//1-4 获取UserMapper对象,调用方法UserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.deleteById(6);MybatisUtil.commitAndClose(sqlSession);}
}
总结
以上就是今天学习的内容。