发表于: 2020-04-25 22:49:13

3 1265


学习内容

安装IDEA

       之前一直使用eclipse进行开发,但是当编写xml文件时,发现没有代码提示功能,用户的体验性不是很好,网上看到好多视频up主都在使用IDEA再加上师兄们也推荐,就下了下来安装没有出现什么问题,但是个性化配置,学习快捷键等花费了不少功夫,代码识别感觉比没有修改之前的eclipse好用很多,但是其中的project概念和eclipse不一样,project像workspace,而其中的module则和eclipse中的project是一个级别的。编写了几行代码,感觉舒适度很高。但是加载一些程序时经常出bug,原因是我jdk版本太高,当初下载的jdk14,感觉很多依赖都没有更新适配,经常会出现一些莫名其妙的错误,很多需要添加新的代码来适应。


实现mybatis连接数据库


MyBatis 

ORMapping: Object Relationship Mapping 对象关系映射 对象指⾯向对象 关系指关系型数据库 Java MySQL 的映射,开发者可以以⾯向对象的思想来管理数据库。 

如何使⽤

新建 Maven ⼯程,pom.xml 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.southwind</groupId>
   <artifactId>aimybatis</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.4.5</version>
       </dependency>

       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>8.0.11</version>
       </dependency>

       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.6</version>
           <scope>provided</scope>
       </dependency>

   </dependencies>

   <build>

       <resources>
           <resource>
               <directory>src/main/java</directory>
               <includes>
                   <include>**/*.xml</include>
               </includes>
           </resource>
       </resources>

   </build>

</project>


新建数据表 

use mybatis; create table t_account( id int primary key auto_increment, username varchar(11), password varchar(11), age int )


新建数据表对应的实体类 Account


package com.southwind.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Account {
private long id;
   private String username;
   private String password;
   private int age;
   private List<Long> ids;


创建 MyBatis 的配置⽂件 confifig.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>

   <!-- 配置MyBatis运行环境 -->
   <environments default="development">
       <environment id="development">
           <!-- 配置JDBC事务管理 -->
           <transactionManager type="JDBC"></transactionManager>
           <!-- POOLED配置JDBC数据源连接池 -->
           <dataSource type="POOLED">
               <property name="driver" value="com.mysql.cj.jdbc.Driver"></property>
               <property name="driver" value="com.mysql.cj.jdbc.Driver"></property>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=UTF-8"></property>
               <property name="username" value="root"></property>
               <property name="password" value="root"></property>
           </dataSource>
       </environment>
   </environments>

   <!-- 注册AccountMapper.xml -->
   <mappers>
       <mapper resource="com/southwind/mapper/AccountMapper.xml"></mapper>

   </mappers>

</configuration>


使⽤原⽣接⼝ 

1MyBatis 框架需要开发者⾃定义 SQL 语句,写在 Mapper.xml ⽂件中,实际开发中,会为每个实体 类创建对应的 Mapper.xml ,定义管理该对象数据的 SQL


<?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.southwind.mapper.AccoutMapper">

   <insert id="save" parameterType="com.southwind.entity.Account">
     insert into t_account(username,password,age) values(#{username},#{password},#{age})
</insert>

</mapper>


namespace 通常设置为⽂件所在包+⽂件名的形式。
insert 标签表示执⾏添加操作。
select 标签表示执⾏查询操作。
update 标签表示执⾏更新操作。
delete 标签表示执⾏删除操作。
id 是实际调⽤ MyBatis ⽅法时需要⽤到的参数。
parameterType 是调⽤对应⽅法时参数的数据类型。



2、在全局配置⽂件 confifig.xml 中注册 AccountMapper.xml

   <!-- 注册AccountMapper.xml -->
   <mappers>
       <mapper resource="com/southwind/mapper/AccountMapper.xml"></mapper>

   </mappers>
3、调⽤ MyBatis 的原⽣接⼝执⾏添加操作。


package com.southwind.test;

import com.southwind.entity.Account;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class Test {
public static void main(String[] args) {
//加载MyBatis配置文件
       InputStream inputStream = Test.class.getClassLoader().getResourceAsStream("config.xml");
       SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
       SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
       SqlSession sqlSession = sqlSessionFactory.openSession();
       String statement = "com.southwind.mapper.AccoutMapper.save";
       Account account = new Account(1L,"张三","123123",22);
       sqlSession.insert(statement,account);
       sqlSession.commit();
       sqlSession.close();
   }
}




明日计划

继续学习mybatis的使用,同时熟悉IDEA

总结

基础知识还是很重要的,中间读取文件的操作每次出错,因为我不懂iostream的操作,回去学习了一编才弄明白其中的意思,这几天还是要打好基础。

问题

最新版本的jdk经常报错,是不是应该重新装一下1.8版本的



返回列表 返回列表
评论

    分享到