package lianxi;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;import javax.swing.*;
import javax.swing.event.DocumentListener;
public class Dialog extends JFrame implements ActionListener{
JPanel jp1,jp2,jp3;
JLabel jl1,jl2,jl3,jl4,jl5,jl6;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;
JButton jb1,jb2;
public Dialog()
{
jl1=new JLabel("学号");
jl2=new JLabel("姓名");
jl3=new JLabel("性别");
jl4=new JLabel("年龄");
jl5=new JLabel("籍贯");
jl6=new JLabel("系别");
jtf1=new JTextField();
jtf2=new JTextField();
jtf3=new JTextField();
jtf4=new JTextField();
jtf5=new JTextField();
jtf6=new JTextField();
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp1.setLayout(new GridLayout(6,1));
jp2.setLayout(new GridLayout(6,1));
//添加组件
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
jp1.add(jl6);
jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3);
jp2.add(jtf4);
jp2.add(jtf5);
jp2.add(jtf6);
this.add(jp1,BorderLayout.WEST);
this.add(jp2,BorderLayout.CENTER);
this.add(jp3,BorderLayout.SOUTH);
jb1=new JButton("添加");
jb1.addActionListener(this);
jb2=new JButton("取消");
jp3.add(jb1);
jp3.add(jb2);
this.setSize(400,350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//连接数据库添加数据
} public static void main(String[] args) {
Dialog dialog=new Dialog();
} public void actionPerformed(ActionEvent e) {
Connection ct=null;
Statement sm=null;
if(e.getSource()==jb1)
{
try
{
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=stu","sa","liangzhao");
/* sm =ct.createStatement();
String id=jtf1.getText();
String name=jtf2.getText();
String sex=jtf3.getText();
String age=jtf4.getText();
String jg=jtf5.getText();
String dept=jtf6.getText();*/
//sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('id','name','sex','age','jg','dept')");
this.dispose();//关闭对话框
}
catch(Exception e1)
{
e1.printStackTrace();
}
finally
{
if(sm!=null)
{
try {
sm.close();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
if(ct!=null)
{
try {
ct.close();
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
} }
}
数据库:
create database stu
create table stud
(stuId varchar(30) primary key,
stuName nvarchar(50) not null,
stuSex nchar(4) check(stuSex in('男','女'))default '男',
stuAge int check(stuAge>1),
stuJg nvarchar(30),
stuDept nvarchar(40),)
insert into stud values('sp001','孙悟空','男',20,'花果山','少林派');
insert into stud values('sp002','猪八戒','男',15,'高老庄','天神');
insert into stud values('sp003','沙悟净','男',26,'流沙河','水神');
insert into stud values('sp004','唐三藏','男',21,'长安','庙里的');select * from studcom.microsoft.sqlserver.jdbc.SQLServerException: 在将 varchar 值 'age' 转换成数据类型 int 时失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown Source)
at lianxi.Dialog.actionPerformed(Dialog.java:119)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;import javax.swing.*;
import javax.swing.event.DocumentListener;
public class Dialog extends JFrame implements ActionListener{
JPanel jp1,jp2,jp3;
JLabel jl1,jl2,jl3,jl4,jl5,jl6;
JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6;
JButton jb1,jb2;
public Dialog()
{
jl1=new JLabel("学号");
jl2=new JLabel("姓名");
jl3=new JLabel("性别");
jl4=new JLabel("年龄");
jl5=new JLabel("籍贯");
jl6=new JLabel("系别");
jtf1=new JTextField();
jtf2=new JTextField();
jtf3=new JTextField();
jtf4=new JTextField();
jtf5=new JTextField();
jtf6=new JTextField();
jp1=new JPanel();
jp2=new JPanel();
jp3=new JPanel();
jp1.setLayout(new GridLayout(6,1));
jp2.setLayout(new GridLayout(6,1));
//添加组件
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
jp1.add(jl6);
jp2.add(jtf1);
jp2.add(jtf2);
jp2.add(jtf3);
jp2.add(jtf4);
jp2.add(jtf5);
jp2.add(jtf6);
this.add(jp1,BorderLayout.WEST);
this.add(jp2,BorderLayout.CENTER);
this.add(jp3,BorderLayout.SOUTH);
jb1=new JButton("添加");
jb1.addActionListener(this);
jb2=new JButton("取消");
jp3.add(jb1);
jp3.add(jb2);
this.setSize(400,350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//连接数据库添加数据
} public static void main(String[] args) {
Dialog dialog=new Dialog();
} public void actionPerformed(ActionEvent e) {
Connection ct=null;
Statement sm=null;
if(e.getSource()==jb1)
{
try
{
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=stu","sa","liangzhao");
/* sm =ct.createStatement();
String id=jtf1.getText();
String name=jtf2.getText();
String sex=jtf3.getText();
String age=jtf4.getText();
String jg=jtf5.getText();
String dept=jtf6.getText();*/
//sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('id','name','sex','age','jg','dept')");
this.dispose();//关闭对话框
}
catch(Exception e1)
{
e1.printStackTrace();
}
finally
{
if(sm!=null)
{
try {
sm.close();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
if(ct!=null)
{
try {
ct.close();
} catch (SQLException e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
}
}
} }
}
数据库:
create database stu
create table stud
(stuId varchar(30) primary key,
stuName nvarchar(50) not null,
stuSex nchar(4) check(stuSex in('男','女'))default '男',
stuAge int check(stuAge>1),
stuJg nvarchar(30),
stuDept nvarchar(40),)
insert into stud values('sp001','孙悟空','男',20,'花果山','少林派');
insert into stud values('sp002','猪八戒','男',15,'高老庄','天神');
insert into stud values('sp003','沙悟净','男',26,'流沙河','水神');
insert into stud values('sp004','唐三藏','男',21,'长安','庙里的');select * from studcom.microsoft.sqlserver.jdbc.SQLServerException: 在将 varchar 值 'age' 转换成数据类型 int 时失败。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(Unknown Source)
at lianxi.Dialog.actionPerformed(Dialog.java:119)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
加上
int age1 = Integer.parseInt(age);Insert的时候注意别加''号。不结贴的同学...
String id=jtf1.getText();
String name=jtf2.getText();
String sex=jtf3.getText();
String age=jtf4.getText();
String jg=jtf5.getText();
String dept=jtf6.getText();
sm.executeUpdate("insert into stud (stuId,stuName,stuSex,stuAge,stuJg,stuDept)values('"+id"+','"+name"+','"+sex"+',"+age+",'"+jg"+','"+dept"+')");