JDBC小Demo(原创)
2015-08-11 20:42
381 查看
初始化部分以及调用到的方法
主界面
增加界面
[code]package Jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Myjdbc { //分别有一个set/get方法 private Statement statement; private Connection con; public Connection getCon() { return con; } public void setCon(Connection con) { this.con = con; } public Statement getStatement() { return statement; } public void setStatement(Statement statement) { this.statement = statement; } private static Myjdbc sql; //构造器+Myjdbc newInstance()方法形成单例设计模式 public static synchronized Myjdbc newInstance(){ if(sql==null){ sql=new Myjdbc(); } return sql; } //通过构造器进行初始化 private Myjdbc(){ String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/clazz"; String user="root"; String password="123456"; try { Class.forName(driver);//加载驱动 con=DriverManager.getConnection(url, user, password);//连接 statement=con.createStatement();//statement // String create="create table if not exists sqlbase (id int primary key auto_increment,username varchar(30),sex varchar(30),,salary int)"; String create="create table if not exists sqlbase (id int primary key auto_increment,username varchar(30),sex varchar(30),salary int)"; statement.execute(create); System.out.println("chuanjina"); // String insert="insert into sqlbase (username,sex,salary)values('zhangsan','nan',7000)"; // String insert1="insert into sqlbase (username,sex,salary)values('lisi','nv',8000)"; // String insert2="insert into sqlbase (username,sex,salary)values('wangwu','nan',9000)"; // String insert3="insert into sqlbase (username,sex,salary)values('zhaoliu','nan',6000)"; // String insert4="insert into sqlbase (username,sex,salary)values('xiaoming','nan',7000)"; // statement.execute(insert); // statement.execute(insert1); // statement.execute(insert2); // statement.execute(insert3); // statement.execute(insert4); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //此方法在增加按钮中调用,在增加前先进行查询,是否存在相同的 //使用preparedstatement可以防止or '1='1的对象加入成功。需要记住它的用法 public boolean insert(String username,String sex,String salary){ String select="select * from sqlbase where username=? and sex=? and salary=?"; String insert="insert into sqlbase (username,sex,salary)values('"+username+"','"+sex+"','"+salary+"')"; try { PreparedStatement pre=con.prepareStatement(select); pre.setString(1, username); pre.setString(2, sex); pre.setString(3, salary); ResultSet set=pre.executeQuery(); set.last(); int num=set.getRow();//返回查询结果的当前行 if(num==1){ //如果有此对象则添加失败 System.out.println("添加失败"); return false; }else{ //无此对象时进行添加 statement.execute(insert); System.out.println("添加成功"); return true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } } //下面注释掉的方法存在'黑客'风险,添加or '1='1会添加成功 // String insert="insert into sqlbase (username,sex,salary)values('"+username+"','"+sex+"','"+salary+"')"; // try { // // String select="select * from sqlbase where username='"+username+"' and sex='"+sex+"'and salary='"+salary+"'"; // ResultSet set=statement.executeQuery(select); // set.last(); // int num=set.getRow(); // if(num==1){ // System.out.println("添加失败"); // return false; // }else{ // statement.execute(insert); // System.out.println("添加成功"); // return true; // } // // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // return false; // } // // // } }
主界面
[code]package Jdbc; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; import java.awt.event.ActionEvent; public class Myjdbcsql extends JFrame { private JPanel contentPane; private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JButton btnNewButton; private JButton button_1; private JLabel lblId; private JTextField textField_3; private JButton btnNewButton_1; private Statement statement; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Myjdbcsql frame = new Myjdbcsql(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Myjdbcsql() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 323, 339); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); textField = new JTextField(); textField.setBounds(144, 37, 66, 21); contentPane.add(textField); textField.setColumns(10); textField_1 = new JTextField(); textField_1.setBounds(144, 84, 66, 21); contentPane.add(textField_1); textField_1.setColumns(10); textField_2 = new JTextField(); textField_2.setBounds(144, 115, 66, 21); contentPane.add(textField_2); textField_2.setColumns(10); statement=Myjdbc.newInstance().getStatement(); JButton button = new JButton("查询"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String id=textField.getText(); String sql="select * from sqlbase where id='"+id+"'"; ResultSet set; try { set = statement.executeQuery(sql); //为什么加.next():查看是否有这个id while(set.next()){ String idset=set.getString("id"); String nameset=set.getString("username"); String sexset=set.getString("sex"); String salaryset=set.getString("salary"); System.out.println("编号"+idset); System.out.println("用户名"+nameset); System.out.println("性别"+sexset); System.out.println("薪水"+salaryset); textField.setText(""); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); button.setBounds(26, 36, 79, 23); contentPane.add(button); btnNewButton = new JButton("修改"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //修改方法与增加的方法类似,此处不再重复 } }); btnNewButton.setBounds(26, 77, 79, 23); contentPane.add(btnNewButton); button_1 = new JButton("删除"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=textField_2.getText(); String sql="select * from sqlbase where id='"+id+"'"; ResultSet set; try { set = statement.executeQuery(sql); while(set.next()){ String idset=set.getString("id"); String nameset=set.getString("username"); String sexset=set.getString("sex"); String salaryset=set.getString("salary"); System.out.println("编号"+idset); System.out.println("用户名"+nameset); System.out.println("性别"+sexset); System.out.println("薪水"+salaryset); textField.setText(""); } } catch (SQLException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } String delete="delete from sqlbase where id='"+id+"'"; try { statement.execute(delete); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.out.println("删除成功"); } }); button_1.setBounds(26, 114, 79, 23); contentPane.add(button_1); lblId = new JLabel("ID"); lblId.setBounds(156, 10, 54, 15); contentPane.add(lblId); textField_3 = new JTextField(); textField_3.setBounds(144, 146, 66, 21); contentPane.add(textField_3); textField_3.setColumns(10); btnNewButton_1 = new JButton("增加"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String id=textField_3.getText(); String sql="select * from sqlbase where id='"+id+"'"; try { ResultSet set=statement.executeQuery(sql); if(set.next()){ System.out.println("该ID号下有数据,请重新输入ID"); textField_3.setText(""); }else{ } } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); btnNewButton_1.setBounds(26, 147, 81, 23); contentPane.add(btnNewButton_1); } }
增加界面
[code]package Jdbc; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import com.mysql.jdbc.PreparedStatement; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.Statement; import java.awt.event.ActionEvent; public class Myjdbcinsert extends JFrame { private JPanel contentPane; private JTextField textField; private JTextField textField_1; private JTextField textField_2; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Myjdbcinsert frame = new Myjdbcinsert(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Myjdbcinsert() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); textField = new JTextField(); textField.setBounds(150, 58, 66, 21); contentPane.add(textField); textField.setColumns(10); textField_1 = new JTextField(); textField_1.setBounds(150, 112, 66, 21); contentPane.add(textField_1); textField_1.setColumns(10); textField_2 = new JTextField(); textField_2.setBounds(150, 160, 66, 21); contentPane.add(textField_2); textField_2.setColumns(10); JLabel lblNewLabel = new JLabel("name"); lblNewLabel.setBounds(73, 61, 54, 15); contentPane.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("sex"); lblNewLabel_1.setBounds(73, 115, 54, 15); contentPane.add(lblNewLabel_1); JLabel lblNewLabel_2 = new JLabel("salary"); lblNewLabel_2.setBounds(73, 163, 54, 15); contentPane.add(lblNewLabel_2); JButton btnNewButton = new JButton("确定"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String username=textField.getText(); String sex=textField_1.getText(); String salary=textField_2.getText(); //方法调用及参数传递 boolean jdbc=Myjdbc.newInstance().insert(username, sex, salary); if(jdbc){ System.out.println("添加成功"); }else{ System.out.println("有该用户请重新输入"); } textField.setText(""); textField_1.setText(""); textField_2.setText(""); } }); btnNewButton.setBounds(150, 215, 93, 23); contentPane.add(btnNewButton); } } //Connection con=Myjdbc.newInstance().getCon(); //PreparedStatement pre=con.prepareStatement();
相关文章推荐
- 寻找缺失的数-LintCode
- linux进程故障调试工具strace(转)
- 在虚拟机中安装windows
- JVM 学习笔记 1. JVM 运行模型
- MPAndroidChart开源图表库---折线图
- 将博客搬至CSDN
- Download Manager (HDU3233,UVA12231,UVALive4486) 解题报告
- Android studio主题风格的添加
- Hdu 2087 kmp算法的运用
- Sightseeing tour
- C++中的switch语句的break问题
- 数据结构实验之链表六:有序链表的建立
- HTTP请求详解
- 计算机概述
- Java中的equals和==异同,你知道多少?
- css3 选择器(三)
- hdu 1281 棋盘游戏
- Sightseeing tour
- 手势识别器
- sql中更新不同库中的表