txt文件内容如下:
11,张三,20
12,李四,21
13,王五,22
14,赵六,23
mapper接口:
package com.abc.dao;
import com.abc.pojo.User;
import java.util.List;
public interface UserMapper {
int insertData(User user);
List<User> getUserList();
}
Mapper.xml配置:
<insert id="insertData" parameterType="com.abc.pojo.User">
insert into test01 (id,name,age) values(#{id},#{name},#{age});
</insert>
工具类:
package com.abc.utils;
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;
//mybatis工具类
public class MybatisUtils {
public static SqlSessionFactory sqlSessionFactory;
static {
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
实体类:
package com.abc.pojo;
public class User {
private int id;
private String name;
private int age;
public User() {
}
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
执行读取文件并写入到数据库中的功能类:
package com.abc.utils;
import com.abc.dao.UserMapper;
import com.abc.pojo.User;
import org.apache.ibatis.session.SqlSession;
import java.io.*;
public class ReadFile {
public void readTxtFile(String fileName) throws FileNotFoundException {
try {
File file = new File(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
//打开数据库连接,获取到mapper对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//创建一个User对象的数组,用来存放User对象
User[] user1 = new User[100];
//创建一个字符串对象,来存放读取到的文件内容
String str = null;
//定义一个数值变量,用来表示User对象数组的下标
int num = 0;
//使用while循环来遍历读取的txt文件的内容
while ((str = reader.readLine()) != null) {
//创建一个User对象
User user = new User();
//创建一个String字符串数组,用来存放split方法按照“,”逗号分开的字符
String[] dd = str.split(",");
//将字符串数组的值,通过user对象的set方法,来给user的属性赋值,其中id和age需要将字符串String类型的值转换成数值int类型
user.setId(Integer.parseInt(dd[0]));
user.setName(dd[1]);
user.setAge(Integer.parseInt(dd[2]));
//将属性已经赋值的user对象,保存到User对象数组中
user1[num] = user;
int res = mapper.insertData(new User(user1[num].getId(), user1[num].getName(), user1[num].getAge()));
if (res > 0) {
System.out.println("已成功增加" + res + "条用户!");
sqlSession.commit();
}
//下标+1,再循环
num++;
}
sqlSession.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
测试类:
@Test
public void readFileTest() throws IOException {
//读取文件
String fileNme = "d:\\222.txt";
ReadFile readFile = new ReadFile();
readFile.readTxtFile(fileNme);
}
执行结果: