【写在前面】:刚刚接触JDBC,常见的题目,用于巩固知识点,个人愚见,方便自己回顾,欢迎探讨。
【题目】:
考察点:
1.JDBC相关方法的使用。2.数据库相关SQL使用。3.接口,继承,面向对象等
**思路概要:**
1.根据题目可知,需要创建四个类(QuestionInfo、BaseDao、QuestionInfoDaoImpl、测试类)一个接口(QuestionInfoDao)
2.其中接口可以提供JDBC的增删改查方法,让其他类实现并重写其方法。
3.数据库的关闭和连接方法写在BaseDao中。
4.整体构思:实现类QuestionInfoDaoImpl继承BaseDao中的连接/关闭数据库方法,并实现接口QuestionInfoDao提供的增删改查方法(如此一来实现类便具备了JBDC操作的相关方法)。
实体类QuestionInfo操作题目系统,涉及JDBC的相关方法调用实现类QuestionInfoDaoImpl中的方法即可。
一、创建数据库,并初始化几条数据
DROP TABLE IF EXISTS `question_info`;
CREATE TABLE `question_info` (
`questionId` int(10) NOT NULL AUTO_INCREMENT,
`question` varchar(300) NOT NULL,
`optionA` varchar(300) NOT NULL,
`optionB` varchar(300) NOT NULL,
`optionC` varchar(300) NOT NULL,
`optionD` varchar(300) NOT NULL,
`subject` int(11) NOT NULL,
`answer` varchar(10) NOT NULL,
PRIMARY KEY (`questionId`)
)
insert into question_info (questionId,question,optionA,optionB,optionC,optionD,answer,subject)
values(1,'在java中合法的变量名是:','_sum','var%','9var','my name','A',1);
insert into question_info (questionId,question,optionA,optionB,optionC,optionD,answer,subject)
values(2,'在C#中非法的变量名是:','%AVG','count_1','num%','3name','A',2);
二、创建相关类
1.数据库连接和关闭类(BaseDao)
package Test2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
* 数据库连接和关闭类(BaseDao)
* @author
* @version
* @since
*/
public class BaseDao {
public static Connection conn;
public static PreparedStatement state;
public static ResultSet rs;
/**
* 数据库连接的方法
*/
public static Connection connectionDataBase(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschool","root","123");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 关闭对象的方法
*/
public static void closeDataBase(){
try {
if (rs!=null) {
rs.close();
}
if (state!=null) {
state.close();
}
if (conn!=null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.接口QuestionInfoDao
package Test2;
import java.sql.ResultSet;
/**
* 接口中定义JDBC的增、删、改、查方法让实现类实现
* @author
* @version
* @since
*/
public interface QuestionInfoDao {
//数据库的增删改方法
public abstract int operateDB(String sql,Object...obs);//因为sql中传入的参数不确定,0个或者多个,所以用动态参数obs
//数据库的查询方法
public abstract ResultSet queryDB(String sql,Object...obs);
}
3.实现类QuestionInfoDaoImpl:继承BaseDao类,实现QuestionInfoDao接口,即:拥有JDBC操作的全部方法。
package Test2;
import java.sql.ResultSet;
/**
* 实现类QuestionInfoDaoImpl:继承BaseDao类,实现QuestionInfoDao接口,即:拥有JDBC操作的全部方法。
*
* @author
* @version
* @since
*/
public class</