案例:从文件中读取图书信息,用来初始化Book对象,将Book对象,放入ArrayList中,然后,循环ArrayList,将数据存入数据库中
步骤:
1.新建项目
2.拷贝mysql驱动程序和图书数据到项目目录下
3.建立Book类(JavaBean)
4.建立BookService类,负责从文件读取数据,放入列表中
(用字节流的方式读文件是没有问题的,但是字符流高级一些
字节流读出来不能显示,强行显示,也是乱码,字符流可以显示
字符是由字节构成的)
5.建立BookDAO,将数据存放数据库中
Book类:
package study;
public class Book {
private String name;
private String author;
private double price;
private String publisher;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
}
BookService 类:
package study;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class BookService {
public ArrayList<Book> getBooks(String fileName) throws IOException{
ArrayList<Book> list = new ArrayList<Book>();
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
Book book = new Book();
book.setName(data[0]);
book.setAuthor(data[1]);
book.setPrice(Double.valueOf(data[2]));
book.setPublisher(data[3]);
list.add(book);
}
return list;
}
}
BookDAO:
package study;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
public class BookDAO {
public void saveData(ArrayList<Book> list) throws ClassNotFoundException, SQLException{
//加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
//数据库
String url = "jdbc:mysql://localhost:3306/bookdb?user=root&password=1234";
//连接
Connection conn = (Connection) DriverManager.getConnection(url);
String sql = "insert into book(name,author,price,publisher)"
+ "values(?,?,?,?)";
PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);
for(int i = 0;i < list.size();i++){
Book book = list.get(i);
ps.setString(1, book.getName());
ps.setString(2, book.getAuthor());
ps.setDouble(3, book.getPrice());
ps.setString(4, book.getPublisher());
ps.executeUpdate();
}
conn.close();
}
}
main:
package study;
import java.io.IOException;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException, IOException {
BookDAO dao = new BookDAO();
dao.saveData(new BookService().getBooks("data.txt"));
}
}
data.txt
AAAA,张三,99,北京
BBBB,李四,999,上海
CCCC,王五,9999,成都