标签:pom 小白 mybatis console sys void 文件 标签 持久
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
小白你好啊,在这里你要自己创建maven工程,如果不懂的配置安装可以看我tool系列的idea配置maven;
如果数据库没有学过,可以看我sql系列的教程;在下文 properties里面还隐藏了一个mysql的安装教程,以免你真是个小白啊!!!
pom 里面就是学习mybatis一些依赖了其中的 junit目前没用到,但是下节课可能就用到啦,苍天饶过谁啊!!!
<dependencies>
<!-- mybatis support-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!-- log4j support -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- junit support -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- mysql support -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency>
</dependencies>
配置log4j.properties是为了更好显示日志信息,能够打印出sql;我们在 resource目录下新建一个 log4j.properties,内容如下,记得替换mapper包的映射路径哟小白;要不然日志打印不出来有你哭的,抱着哥哥的博客和公众号都没软用;
### 设置###
log4j.rootLogger = info,stdout
### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
## 这边要替换成你的mapper包映射路径哟
log4j.logger.com.zszxz.mybatis.mapper = debug
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
# mysql安装https://zhuanlan.zhihu.com/p/37152572
小白在这里使用的mysql5.7版本,建表的信息如下;是一个学生类,主要字段是学生表主键,学生姓名,学生编号,然后我在里面插入了2条记录哟;哥哥为什么要建立学生实体呢,因为学生爱学习,学生最单纯,哥哥把自己永远当作了学生;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(255) DEFAULT NULL COMMENT '学生姓名',
`number` int(11) DEFAULT NULL COMMENT '学生编号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (1, '知识追寻者', 996);
INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (2, 'youku1327', 555);
学生实体是为了查询sql语句将返回的结果映射到实体里面哟!
/**
1. @Author lsc
2. @Description <p> </p>
3. @Date 2019/12/1 20:07
*/
public class Student {
// id
private String id;
// 学生姓名
private String name;
// 学生编号
private String number;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
下面的每句话都堪称经典,你如果是异教徒,要像学习圣经一样虔诚对待它:
namespace
属性是跟我们 StudentMapper 接口对应映射路径;getStudent
是跟 <select>
标签里面的id 对应,表示 查询方法的唯一标识;resultType
里面就是 学生实体的映射路径,不要填类名,万一报错了,你可找不到我帮你检查了;<select>
标签里面的内容就是我们的sql逻辑咯,哥哥这边做了查询全表的操作;StudentMapper.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.zszxz.mybatis.mapper.StudentMapper">
<!-- 查询学生-->
<select id="getStudent" resultType="com.zszxz.mybatis.entity.Student">
select * from student
</select>
</mapper>
StudentMapper :
public interface StudentMapper {
// 查询学生
List<Student> getStudent();
}
mybatis-config.xml 是我们 配置mybatis 的内容都在里面,小白在这里不用知道太多,小说里面有句话很经典啊,知道的越多死的越快啊,你要学杨修么,虽然才华横溢,还不是被曹操咔嚓了!!!!你该知道的我都写里面;这个文件的位置 是放在 resource目录下;
<?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">
<!-- mybaits配置 -->
<configuration>
<!-- 全局环境配置-->
<environments default="development">
<environment id="development">
<!-- 事物 -->
<transactionManager type="JDBC"/>
<!-- 配置数据源 -->
<dataSource type="POOLED">
<!-- 数据库驱动 -->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<!-- 数据库路径 -->
<property name="url" value="jdbc:mysql://192.168.0.106:3306/mybatis"/>
<!-- 账号-->
<property name="username" value="root"/>
<!--密码 -->
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 引入自定义mapper.xml -->
<mappers>
<mapper resource="mapper/StudentMapper.xml"/>
</mappers>
</configuration>
建立一个主类,让我们配置的mybatis跑起来把!!!
openSession()
f方法获得SqlSession; public static void main(String[] args) throws IOException {
// 资源路径
String resource = "mybatis-config.xml";
// 配置mybatis获得输入流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//从 SqlSessionFactory 中获取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 使用 SqlSession 查询
List<Student> getStudent = sqlSession.selectList("getStudent");
for (Student student : getStudent){
System.out.println("学生姓名:"+student.getName()+" 学生编号:"+student.getNumber());
}
// 关闭 SqlSession
sqlSession.close();
}
小白写试试自己敲啊,不行了再看看哥哥的源码!!!!!!!
youku1327的github
标签:pom 小白 mybatis console sys void 文件 标签 持久
原文地址:https://www.cnblogs.com/zszxz/p/12065722.html