连接数据库
package test1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcConnection {
private static String DRIVER_NAME="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String DATABASE_URL="jdbc:sqlserver://localhost:1433;DatabaseName=sales";
private static String DATABASE_USERNAME="aa";
private static String DATABASE_PASSWORD="123";
private static Connection connection;
private static Statement statement;
private static ResultSet resultSet;
public static Connection getJdbcConnection() throws SQLException{
if(connection==null||connection.isClosed()) {
try {
Class.forName(DRIVER_NAME);
connection = DriverManager.getConnection(DATABASE_URL, DATABASE_USERNAME, DATABASE_PASSWORD);
}catch (ClassNotFoundException e ) {
System.err.println("装在JDBC驱动程序失败。");
e.printStackTrace();
}catch(SQLException e) {
System.err.println("无法连接数据库");
e.printStackTrace();
}
}
return connection;
}
public static ResultSet executeQuery(String sql) {
try {
statement=getJdbcConnection().createStatement();
resultSet=statement.executeQuery(sql);
}catch(SQLException e) {
System.out.println(e);
}
return resultSet;
}
public static int executeUpdate(String sql) {
int count=0;
try {
statement=getJdbcConnection().createStatement();
count=statement.executeUpdate(sql);
}catch(SQLException e) {
System.out.println(e);
}
return count;
}
public static void close() {
if(resultSet!=null) {
try {
resultSet.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(statement!=null) {
try {
statement.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(connection!=null) {
try {
connection.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
设置窗口
package test1;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.swing.*;
public class JdbcDataView extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JMenuBar bar;
JMenu menuQuery,menuAdd,menuUpdate;
JMenuItem queryAgents,queryCustomers,queryOrders,queryProducts;
JMenuItem addAgents,addCustomers,addOrders,addProducts;
JTextField text;
JButton button;
JLabel label;
JPanel panel;
JScrollPane jscrollpane;
JTable table;
DefaultTableModel dtm;
ResultSetMetaData rsmd;
public JdbcDataView() {
init();
setBounds(300,100,850,550);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void init() {
setTitle( " JDBC 连接数据库");
setLayout( new BorderLayout( ));
bar = new JMenuBar();
menuQuery =new JMenu("查询");menuAdd = new JMenu("插入");
bar.add ( menuQuery);
bar.add( menuAdd);
setJMenuBar(bar);
queryAgents = new JMenuItem("查询代理商");
queryAgents.addActionListener( this);
menuQuery.add( queryAgents);
queryCustomers = new JMenuItem("查询客户");
queryCustomers.addActionListener( this);
menuQuery.add( queryCustomers);
queryOrders = new JMenuItem("查询订单");
queryOrders.addActionListener( this);
menuQuery.add( queryOrders);
queryProducts = new JMenuItem("查询商品");
queryProducts.addActionListener( this);
menuQuery.add( queryProducts);
addAgents = new JMenuItem("增加代理商");
addAgents.addActionListener( this);
menuAdd.add( addAgents) ;
addCustomers = new JMenuItem("增加客户");
addCustomers.addActionListener(this);
menuAdd.add( addCustomers);
addOrders = new JMenuItem("增加订单");
addOrders.addActionListener( this);
menuAdd.add( addOrders);
addProducts = new JMenuItem("增加商品");
addProducts.addActionListener( this);
menuAdd.add( addProducts);
text = new JTextField( 16);
button = new JButton("删除");
label = new JLabel("输人代理商ID删除数据");
panel = new JPanel();
panel.add ( label);
panel.add( text);
panel.add( button) ;
button.addActionListener( this);
add( panel,BorderLayout.SOUTH);
JScrollPane scroller = new JScrollPane( table);
add ( scroller,BorderLayout.CENTER);
}
public void actionPerformed( ActionEvent e) {
if ( e.getSource() == queryAgents){
String sql = " select * from agents" ;
query(sql);
}
if( e.getSource() == queryCustomers){
String sql = "select * from customers";
query( sql);
}
if( e.getSource() == queryOrders){
String sql = " select * from orders" ;
query( sql);}
if( e.getSource( ) == queryProducts){
String sql = " select * from products" ;
query( sql);
}
if( e.getSource()== addCustomers){
String sql = " insert into agents values( ' a08', 'test' , 'chongqing' ,8)";
update( sql );
}
if( e.getSource( ) == addOrders){
String sql = "insert into orders values( '0001','jan'.'cO01’'a08''n01', 2000 ,8)";
update( sql);
}
if( e.getSource() == addOrders) {
String sql = "insert into orders values('0001' , 'ian''c001’'n08’'n01’.2000,8)";
update( sql);
}
if( e.getSource()== addProducts){
String sql= " insert into products values( 'p08' , 'test' , ' chongqing’, 1000,1 ) ";
update( sql);
}
if( e.getSource()== button){
String sql = " delete from agents where aid ='"+text.getText()+"'";
update( sql);
}
}
private void query (String sql){
ResultSet resultSet = JdbcConnection.executeQuery( sql);
try {
displayResultSet (resultSet);
}catch ( SQLException e1){
e1.printStackTrace();
}
JdbcConnection.close();
}
private void update( String sql){
int count = JdbcConnection.executeUpdate( sql);
System.out.println("受影响行数:"+count );
JdbcConnection.close();
}
@SuppressWarnings({ "unchecked" , "rawtypes" })
private void displayResultSet ( ResultSet rs) throws SQLException {
Vector colum = new Vector( );
Vector rows = new Vector( );
try {
rsmd = rs.getMetaData();
for ( int i= 1; i<= rsmd.getColumnCount(); ++i)
colum.addElement( rsmd.getColumnName(i));
while ( rs.next() ){
Vector currow = new Vector();
for ( int i = 1; i<= rsmd.getColumnCount();++i){
currow.addElement( rs.getString(i));
}
rows.addElement( currow );
}
table = new JTable( rows, colum) ;
add ( table,BorderLayout.CENTER);
table.setVisible(true);
table.setRowHeight(50);
}catch ( SQLException e1){
e1.printStackTrace();
}
JScrollPane scroller = new JScrollPane( table);
Container c = getContentPane();
c.remove(1);
c.add( scroller,BorderLayout.CENTER);
c.validate();
}
public static void main(String[] args) {
JdbcDataView jdbcDataView = new JdbcDataView();
}
}