myeclipseでデータベースsqlyogに接続する方法
9042 ワード
事前にsqlyogでデータベースを新規作成し、テーブルを作成します.
次にmyeclipseを使用してWebサービスプロジェクトを新規作成し、cn.edu.hpu.serviceの4つのパッケージをそれぞれ作成します.
cn.edu.hpu.servlet,
cn.edu.hpu.test,
cn.edu.hpu.util,
次に、最初のパッケージにオブジェクトを作成します(本稿では、簡単な学生データベースを作成します).
コードは次のとおりです.
2つ目のパッケージには、2つのファイルがあります.1つはStudentManager抽象インタフェース、もう1つはStudentManagerImplで、StudentManagerインタフェースを実装します.
コードは次のとおりです.
3つ目のパッケージにはテストのために書かれています.
テスト方法は次のとおりです.
テストの追加:
削除テスト:
接続テスト:
テストの更新:
データテストの取得:
次に最も重要なステップ、すなわちSQLyogに接続することです.これは最も重要なステップです.私はこのファイルを最後のパッケージに構築しました.
コードは次のとおりです.
これまでずっとこの問題が分からなかったが,今は分かった.
次にmyeclipseを使用してWebサービスプロジェクトを新規作成し、cn.edu.hpu.serviceの4つのパッケージをそれぞれ作成します.
cn.edu.hpu.servlet,
cn.edu.hpu.test,
cn.edu.hpu.util,
次に、最初のパッケージにオブジェクトを作成します(本稿では、簡単な学生データベースを作成します).
コードは次のとおりです.
package cn.edu.hpu.jdbc.model;
public class Student {
private int id;
private String name;
private String tel;
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 String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}
2つ目のパッケージには、2つのファイルがあります.1つはStudentManager抽象インタフェース、もう1つはStudentManagerImplで、StudentManagerインタフェースを実装します.
コードは次のとおりです.
package cn.edu.hpu.jdbc.service;
import java.util.List;
import cn.edu.hpu.jdbc.model.Student;
public interface StudentManager {
public List<Student> getStudents();
public boolean add(Student stu);
public boolean del(int id);
public boolean update(Student stu);
public Student getStudentById(int id);
}
package cn.edu.hpu.jdbc.service;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cn.edu.hpu.jdbc.model.Student;
import cn.edu.hpu.jdbc.util.DBOperator;
public class StudentManagerImpl implements StudentManager{
public boolean add(Student stu){
boolean flag=false;
Connection conn = null;
PreparedStatement pst = null;
try{
conn = DBOperator.getConnection();
String sql = "insert into student_xinxi(name,tel) values(?,?)";
pst = conn.prepareStatement(sql);
pst.setString(1,stu.getName());
pst.setString(2,stu.getTel());
int rows = pst.executeUpdate();
if(rows > 0){
flag = true;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
DBOperator.close(pst,conn);
}
return flag;
}
public boolean del(int id){
boolean flag = false;
Connection conn = null;
PreparedStatement pst = null;
try{
conn = DBOperator.getConnection();
String sql = "delete from student_xinxi where id=?";
pst = conn.prepareStatement(sql);
pst.setInt(1, id);
int rows = pst.executeUpdate();
if(rows > 0){
flag=true;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
DBOperator.close(pst,conn);
}
return flag;
}
public List<Student> getStudents(){
List<Student> list = new ArrayList<Student>();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
conn = DBOperator.getConnection();
String sql = "select * from student_xinxi";
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setTel(rs.getString("tel"));
list.add(stu);
}
} catch(Exception ex) {
ex.printStackTrace();
}finally{
DBOperator.close(rs,st,conn);
}
return list;
}
public boolean update(Student stu){
boolean flag = false;
Connection conn = null;
PreparedStatement pst = null;
try{
conn = DBOperator.getConnection();
String sql = "update student_xinxi set name=?,tel=? where id=?";
pst = conn.prepareStatement(sql);
pst.setString(1, stu.getName());
pst.setString(2, stu.getTel());
pst.setInt(3,stu.getId());
int rows = pst.executeUpdate();
if(rows >0){
flag=true;
}
} catch(Exception ex){
ex.printStackTrace();
} finally{
DBOperator.close(pst,conn);
}
return flag;
}
public Student getStudentById(int id){
Student stu = new Student();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn = DBOperator.getConnection();
String sql ="select * from student_xinxi where id=" + id;
st = conn.createStatement();
rs = st.executeQuery(sql);
if(rs.next()){
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("name"));
stu.setTel(rs.getString("tel"));
}
} catch (Exception ex){
ex.printStackTrace();
DBOperator.close(rs,st,conn);
}
return stu;
}
}
3つ目のパッケージにはテストのために書かれています.
テスト方法は次のとおりです.
テストの追加:
package cn.edu.hpu.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class AddTest {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","123");
String sql = "insert into student_xinxi(name,tel) values(?,?)";
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1," ");
pst.setString(2," ");
pst.executeUpdate();
System.out.println(" !");
}
}
削除テスト:
package cn.edu.hpu.jdbc.test;
import cn.edu.hpu.jdbc.service.StudentManager;
import cn.edu.hpu.jdbc.service.StudentManagerImpl;
public class DelTest {
public static void main(String[] args) {
StudentManager dao = new StudentManagerImpl();
boolean flag = dao.del(2);
if(flag){
System.out.println(" !");
}else{
System.out.println(" !");
}
}
}
接続テスト:
package cn.edu.hpu.jdbc.test;
import java.sql.Connection;
import cn.edu.hpu.jdbc.util.DBOperator;
public class ConnectionTest {
public static void main(String[] args) {
Connection conn = DBOperator.getConnection();
if(conn != null)
System.out.println(" !!");
}
}
テストの更新:
package cn.edu.hpu.jdbc.test;
import cn.edu.hpu.jdbc.model.Student;
import cn.edu.hpu.jdbc.service.StudentManager;
import cn.edu.hpu.jdbc.service.StudentManagerImpl;
public class UpdateTest {
public static void main(String[] args) {
StudentManager dao = new StudentManagerImpl();
Student stu = dao.getStudentById(1);
stu.setName(" ");
stu.setTel("99991");
boolean flag = dao.update(stu);
if(flag)
System.out.println(" !");
else
System.out.println(" !");
}
}
データテストの取得:
package cn.edu.hpu.jdbc.test;
import cn.edu.hpu.jdbc.model.Student;
import cn.edu.hpu.jdbc.service.StudentManager;
import cn.edu.hpu.jdbc.service.StudentManagerImpl;
public class GetTest {
public static void main(String[] args) {
StudentManager dao = new StudentManagerImpl();
Student stu = dao.getStudentById(3);
if(stu != null){
System.out.println(" !");
System.out.println("id:" + stu.getId());
System.out.println(" :" + stu.getName());
System.out.println(" :" + stu.getTel());
}
}
}
次に最も重要なステップ、すなわちSQLyogに接続することです.これは最も重要なステップです.私はこのファイルを最後のパッケージに構築しました.
コードは次のとおりです.
package cn.edu.hpu.jdbc.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBOperator {
private final static String driver = "com.mysql.jdbc.Driver";
private final static String url = "jdbc:mysql://localhost:3306/student";// ,
static{
try{
Class.forName(driver);
} catch (ClassNotFoundException e){
e.printStackTrace();
}
}
public static Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url,"root","123");// , , ,
}catch (SQLException e){
e.printStackTrace();
}
return conn;
}
public static void close(ResultSet rs, Statement st, Connection conn){
try{
if(rs != null){
rs.close();
}
if(st != null){
st.close();
}
if(conn != null){
conn.close();
}
} catch(Exception ex){
ex.printStackTrace();
}
}
public static void close(Statement st, Connection conn){
close(null,st,conn);
}
}
これまでずっとこの問題が分からなかったが,今は分かった.