天天看點

JDBC部分知識點

一、JDBC --用java代碼操作資料庫  --CRUD(增删改查)

1.導入MySql驅動包

2.選擇要連接配接的是哪一種資料庫

Class.forName("com.mysql.jdbc.Driver");對類進行加載

3.通過主機号、端口号、使用者名、密碼建立一個連接配接

String url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&CharacterEncoding=utf8";

String user = "root";

String password = "1234";

//DriverManager.getConnection(url,user,password);

4.選擇要操作的資料庫

Connection conn = DriverManager.getConnection(url,user,password);

5.打開一個指令視窗寫SQL語句

PreparedStatment psta = conn.prepareStatment("select * from emp");

6.執行SQL語句,檢視結果。

ResultSet rs = psta.executeQuery();

List<Emp> emplist = new ArrayList<Emp>();

While(re.next()){

emplist.add(new Emp(rs.getInt("sno"),rs.getString("sname"),rs.getInt("Salary"),rs.getString

("job"));

}

如果是增删改,則傳回受影響的行數

如果是查詢,則傳回結果集

7.如果是查詢,需要将結果集映射到JavaBean中

*别忘了關閉(倒着關):

if(rs!=null){

rs.close();

}

if(psta!=null){

psta.close();

}

if(conn!=null){

conn.close();

}

二、jdbc封裝查詢要考慮的問題

1.傳回值類型不确定

2.sql語句不同(參數傳遞)

3.語句中可能帶有參數(參數傳遞)

*把方法作為參數傳進來

JDK1.8之前處理方式:new一個接口,裡面有一個抽象方法,當做匿名内部類

List<Student> studentlist = JdbcUtil.executeQuery("select * from student",

new RowMap<Teacher>(){

public TeacherRowMapping(ResultSet rs){

studentlist.add(new Student(rs.getInt(sno),rs.getString(sname),rs.getInt

(Score),rs.getString(Ssex));

}

},null)

4.處理ResultSet方式不同

三、方法封裝

添加:

1.接收表單傳進的參數

String sno = req.getParameter("sno");

2.将參數封裝到JavaBean

Student student = new Student();

student.setSno(sno);

3.調用服務進行添加

IstudentService service = new StudentServiceImpl();(如果這個還沒寫好,用null)

4.重定向到清單頁

resp.sendRedirect("add.jsp");

修改:

1.接收sno

String sno = req.getParameter("sno");

2.通過sno查詢想要修改的資料

IstudentService service = new StudentServiceImpl();

Student student = service.getStudent(sno);

3.将資料放進作用域

req.setAttribute("student",student);

4.轉發到修改頁面

req.getRequestDispatcher("student").forward(req,resp);

繼續閱讀