扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用JDBC进行数据库的增删改查操作1.下载Microsoft SQL Server 2005 JDBC 驱动包jar文件 将jar文件引入工程中2.封装数据库链接的获取和关闭操作import java.sql.*;public class BaseDao {\x0d\x0a /**\x0d\x0a * 数据库驱动类的字符串,完整的包名加类名 在工程中查看添加的jar文件 能看到这个类\x0d\x0a */\x0d\x0a private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; /**\x0d\x0a * 数据库连接地址\x0d\x0a * \x0d\x0a * DataBaseName=数据库名称 其它固定\x0d\x0a */\x0d\x0a private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs"; /**\x0d\x0a * 连接数据库的用户名\x0d\x0a */\x0d\x0a private static final String USER = "sa"; /**\x0d\x0a * 用户密码\x0d\x0a */\x0d\x0a private static final String PASSWORD = ""; /**\x0d\x0a * 获取连接 异常直接抛出 或者捕获后自定义异常信息再抛出\x0d\x0a */\x0d\x0a public static Connection getConnection() throws Exception {\x0d\x0a Class.forName(DRIVE);\x0d\x0a return DriverManager.getConnection(URL, USER, PASSWORD);\x0d\x0a } /**\x0d\x0a * 关闭与数据库的连接 释放资源\x0d\x0a */\x0d\x0a public static void closeAll(ResultSet resultSet, PreparedStatement pst,\x0d\x0a Connection connection) throws Exception {\x0d\x0a if (resultSet != null)\x0d\x0a resultSet.close();\x0d\x0a if (pst != null)\x0d\x0a pst.close();\x0d\x0a if (connection != null)\x0d\x0a connection.close();\x0d\x0a }}3.创建图书的实体类public class Book {\x0d\x0a /**\x0d\x0a * 数据库主键\x0d\x0a */\x0d\x0a private Long id; /**\x0d\x0a * 作者\x0d\x0a */\x0d\x0a private String author; /**\x0d\x0a * 书名\x0d\x0a */\x0d\x0a private String name;\x0d\x0a /**\x0d\x0a * 默认构造\x0d\x0a *\x0d\x0a */\x0d\x0a public Book() {\x0d\x0a }\x0d\x0a /**\x0d\x0a * 全字段构造\x0d\x0a * @param id\x0d\x0a * @param author\x0d\x0a * @param name\x0d\x0a */\x0d\x0a public Book(Long id, String author, String name) {\x0d\x0a this.id = id;\x0d\x0a this.author = author;\x0d\x0a this.name = name;\x0d\x0a }\x0d\x0a /**\x0d\x0a * 以下为读写属性的方法\x0d\x0a * @return\x0d\x0a */\x0d\x0a public String getAuthor() {\x0d\x0a return author;\x0d\x0a }\x0d\x0a public void setAuthor(String author) {\x0d\x0a this.author = author;\x0d\x0a }\x0d\x0a public Long getId() {\x0d\x0a return id;\x0d\x0a }\x0d\x0a public void setId(Long id) {\x0d\x0a this.id = id;\x0d\x0a }\x0d\x0a public String getName() {\x0d\x0a return name;\x0d\x0a }\x0d\x0a public void setName(String name) {\x0d\x0a this.name = name;\x0d\x0a }\x0d\x0a}\x0d\x0a4.创建与图书表交互的工具类import java.sql.Connection;\x0d\x0aimport java.sql.PreparedStatement;\x0d\x0aimport java.sql.ResultSet;\x0d\x0aimport java.util.ArrayList;\x0d\x0aimport java.util.List;public class BookDao {\x0d\x0a /**\x0d\x0a * 添加新书\x0d\x0a * \x0d\x0a * @param book 要添加入数据库的图书 作者 书名 必须给定\x0d\x0a */\x0d\x0a public void addBook(Book book) throws Exception {\x0d\x0a // 连接\x0d\x0a Connection connection = null;\x0d\x0a // 执行语句\x0d\x0a PreparedStatement pst = null;\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection();\x0d\x0a // 构造执行语句\x0d\x0a String sql = "insert into book values(" + book.getAuthor() + ","\x0d\x0a + book.getName() + ")";\x0d\x0a pst = connection.prepareStatement(sql);\x0d\x0a pst.executeUpdate(); } catch (Exception e) {\x0d\x0a // 抛出异常\x0d\x0a throw e;\x0d\x0a } finally {\x0d\x0a // 无论是否异常 均关闭数据库\x0d\x0a BaseDao.closeAll(null, pst, connection);\x0d\x0a }\x0d\x0a } /**\x0d\x0a * 查询所有书籍列表\x0d\x0a */\x0d\x0a public List getBooks() throws Exception {\x0d\x0a // 用于存放查寻结果的集合\x0d\x0a List books = new ArrayList();\x0d\x0a // 连接\x0d\x0a Connection connection = null;\x0d\x0a // 执行语句\x0d\x0a PreparedStatement pst = null;\x0d\x0a // 查询结果\x0d\x0a ResultSet resultSet = null;\x0d\x0a try {\x0d\x0a connection = BaseDao.getConnection();\x0d\x0a // 构造查询语句\x0d\x0a String sql = "select * from book";\x0d\x0a pst = connection.prepareStatement(sql);\x0d\x0a resultSet = pst.executeQuery(); // 循环读取查询结果行\x0d\x0a while (resultSet.next()) {\x0d\x0a // getXXX的参数为数据表列名\x0d\x0a Book book = new Book(resultSet.getLong("id"), resultSet\x0d\x0a .getString("author"), resultSet.getString("name"));\x0d\x0a // 将封装好的图书对象存入集合\x0d\x0a books.add(book);\x0d\x0a }\x0d\x0a } catch (Exception e) {\x0d\x0a // 抛出异常\x0d\x0a throw e;\x0d\x0a } finally {\x0d\x0a // 无论是否异常 均关闭数据库\x0d\x0a BaseDao.closeAll(resultSet, pst, connection);\x0d\x0a }\x0d\x0a // 返回查询结果\x0d\x0a return books;\x0d\x0a }/***其它方法类似上面 只是语句不同*/\x0d\x0a}当然 以上只是简单的封装 初学者可以在理解以上代码的基础上 进行更高级的封装\x0d\x0a5.使用BookDao添加书籍和获取所有书籍列表import java.util.List;/**\x0d\x0a * 测试类\x0d\x0a * @author Administrator\x0d\x0a *\x0d\x0a */\x0d\x0apublic class Test { /**\x0d\x0a * @param args\x0d\x0a * @throws Exception \x0d\x0a */\x0d\x0a public static void main(String[] args) throws Exception {\x0d\x0a //创建工具类对象\x0d\x0a BookDao dao = new BookDao();\x0d\x0a //创建一本图书\x0d\x0a Book book = new Book(null,"QQ:495691293","编程菜鸟");\x0d\x0a //添加书籍到数据库\x0d\x0a dao.addBook(book);\x0d\x0a \x0d\x0a //获取所有图书列表\x0d\x0a List books = dao.getBooks();\x0d\x0a //输出结果\x0d\x0a for (Book b : books) {\x0d\x0a System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName());\x0d\x0a }\x0d\x0a }}
成都创新互联是一家专业提供耒阳企业网站建设,专注与做网站、网站设计、H5开发、小程序制作等业务。10年已为耒阳众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
使用JDBC进行数据库的增删改查操作1.下载Microsoft SQL Server 2005 JDBC 驱动包jar文件 将jar文件引入工程中2.封装数据库链接的获取和关闭操作import java.sql.*;public class BaseDao {
/**
* 数据库驱动类的字符串,完整的包名加类名 在工程中查看添加的jar文件 能看到这个类
*/
private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; /**
* 数据库连接地址
*
* DataBaseName=数据库名称 其它固定
*/
private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs"; /**
* 连接数据库的用户名
*/
private static final String USER = "sa"; /**
* 用户密码
*/
private static final String PASSWORD = ""; /**
* 获取连接 异常直接抛出 或者捕获后自定义异常信息再抛出
*/
public static Connection getConnection() throws Exception {
Class.forName(DRIVE);
return DriverManager.getConnection(URL, USER, PASSWORD);
} /**
* 关闭与数据库的连接 释放资源
*/
public static void closeAll(ResultSet resultSet, PreparedStatement pst,
Connection connection) throws Exception {
if (resultSet != null)
resultSet.close();
if (pst != null)
pst.close();
if (connection != null)
connection.close();
}}3.创建图书的实体类public class Book {
/**
* 数据库主键
*/
private Long id; /**
* 作者
*/
private String author; /**
* 书名
*/
private String name;
/**
* 默认构造
*
*/
public Book() {
}
/**
* 全字段构造
* @param id
* @param author
* @param name
*/
public Book(Long id, String author, String name) {
this.id = id;
this.author = author;
this.name = name;
}
/**
* 以下为读写属性的方法
* @return
*/
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.创建与图书表交互的工具类import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class BookDao {
/**
* 添加新书
*
* @param book 要添加入数据库的图书 作者 书名 必须给定
*/
public void addBook(Book book) throws Exception {
// 连接
Connection connection = null;
// 执行语句
PreparedStatement pst = null;
try {
connection = BaseDao.getConnection();
// 构造执行语句
String sql = "insert into book values(" + book.getAuthor() + ","
+ book.getName() + ")";
pst = connection.prepareStatement(sql);
pst.executeUpdate(); } catch (Exception e) {
// 抛出异常
throw e;
} finally {
// 无论是否异常 均关闭数据库
BaseDao.closeAll(null, pst, connection);
}
} /**
* 查询所有书籍列表
*/
public ListBook getBooks() throws Exception {
// 用于存放查寻结果的集合
ListBook books = new ArrayListBook();
// 连接
Connection connection = null;
// 执行语句
PreparedStatement pst = null;
// 查询结果
ResultSet resultSet = null;
try {
connection = BaseDao.getConnection();
// 构造查询语句
String sql = "select * from book";
pst = connection.prepareStatement(sql);
resultSet = pst.executeQuery(); // 循环读取查询结果行
while (resultSet.next()) {
// getXXX的参数为数据表列名
Book book = new Book(resultSet.getLong("id"), resultSet
.getString("author"), resultSet.getString("name"));
// 将封装好的图书对象存入集合
books.add(book);
}
} catch (Exception e) {
// 抛出异常
throw e;
} finally {
// 无论是否异常 均关闭数据库
BaseDao.closeAll(resultSet, pst, connection);
}
// 返回查询结果
return books;
}/***其它方法类似上面 只是语句不同*/
}当然 以上只是简单的封装 初学者可以在理解以上代码的基础上 进行更高级的封装
5.使用BookDao添加书籍和获取所有书籍列表import java.util.List;/**
* 测试类
* @author Administrator
*
*/
public class Test { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
//创建工具类对象
BookDao dao = new BookDao();
//创建一本图书
Book book = new Book(null,"QQ:495691293","编程菜鸟");
//添加书籍到数据库
dao.addBook(book);
//获取所有图书列表
ListBook books = dao.getBooks();
//输出结果
for (Book b : books) {
System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName());
}
}}
import java.awt.*; \x0d\x0aimport javax.swing.*; \x0d\x0aimport java.awt.event.*; \x0d\x0aimport java.sql.*; \x0d\x0a\x0d\x0aclass LoginFrm extends JFrame implements ActionListener \x0d\x0a{ \x0d\x0aJLabel lbl1=new JLabel("用户名"); \x0d\x0aJLabel lbl2=new JLabel("密码"); \x0d\x0aJTextField txt=new JTextField(15); \x0d\x0aJPasswordField pf=new JPasswordField(); \x0d\x0aJButton btn1=new JButton("确定"); \x0d\x0aJButton btn2=new JButton("取消"); \x0d\x0a\x0d\x0apublic LoginFrm() \x0d\x0a{ \x0d\x0athis.setTitle("登陆"); \x0d\x0aJPanel jp=(JPanel)this.getContentPane(); \x0d\x0ajp.setLayout(new GridLayout(3,2,10,10)); \x0d\x0ajp.add(lbl1);jp.add(txt); \x0d\x0ajp.add(lbl2);jp.add(pf); \x0d\x0ajp.add(btn1);jp.add(btn2); \x0d\x0abtn1.addActionListener(this); \x0d\x0abtn2.addActionListener(this); \x0d\x0a} \x0d\x0a\x0d\x0apublic void actionPerformed(ActionEvent ae) \x0d\x0a{ \x0d\x0aif(ae.getSource()==btn1) \x0d\x0a{ \x0d\x0atry \x0d\x0a{ \x0d\x0aClass.forName("sun.jdbc.odbc.JdbcOdbcDriver"); \x0d\x0aConnection con=DriverManager.getConnection("jdbc:odbc:MyDB","",""); \x0d\x0aStatement cmd=con.createStatement(); \x0d\x0aResultSet rs=cmd.executeQuery("select * from loginAndpassword where login='"+txt.getText()+"' and password='"+pf.getText()+"'"); \x0d\x0aif(rs.next()) \x0d\x0a{ \x0d\x0aJOptionPane.showMessageDialog(null,"登陆成功!"); \x0d\x0a} \x0d\x0aelse \x0d\x0aJOptionPane.showMessageDialog(null,"用户名或密码错误!"); \x0d\x0a} catch(Exception ex){} \x0d\x0a\x0d\x0aif(ae.getSource()==btn2) \x0d\x0a{ \x0d\x0atxt.setText(""); \x0d\x0apf.setText(""); \x0d\x0a} \x0d\x0a} \x0d\x0a} \x0d\x0a\x0d\x0apublic static void main(String arg[]) \x0d\x0a{ \x0d\x0aJFrame.setDefaultLookAndFeelDecorated(true); \x0d\x0aLoginFrm frm=new LoginFrm(); \x0d\x0afrm.setSize(400,200); \x0d\x0afrm.setVisible(true); \x0d\x0a} \x0d\x0a}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流