javamysql数据插入
觉得你没调用stmt.executeUpdate();这句吧,你可以改成我下面的形式试试。在这之前你得确认连接上数据库了吗?如果你打印con取到了值(或者单步调式看con取到了值)。然后将insert into employee(id,name,sex,born,nation,minzu,zheng,marry,school,wei,tel,address) values ('"+snumber+"','"+sname+"','"+ssex+"','"+sbir+"','"+shometown+"','"+snation+"','"+sstatus+"','"+smarrage+"','"+secation+"','"+sposition+"','"+smobile+"','"+saddress+"')");
改成insert into employee(id,name,sex,born,nation,minzu,zheng,marry,school,wei,tel,address) values (?,?,?,?,?,?,?,?,?,?,?,?)");
然后这样子做:
stmt.setString(1,值);
stmt.setString(2,值);
直至塞完你要插入的值,如果是int的,里面也有stmt.setInt(3,值);
还有float的就有stmt.setFloat(4,值);总之,你想赛什么样的值它都有方法的。
然后你再调用stmt.executeUpdate();就OK了
都给你说了没调用stmt.executeUpdate();
怎么不去试试调用stmt.executeUpdate();呢,调了后没有再找我!
⑵ java后台向mysql插入数据,数据库中显示乱码
MySQL中默认字符集的设置有四级:服务器级,数据库级,表级
。最终是字段级
的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show
create
table
table
;
或show
full
fields
from
tableName;
来检查当前表中字段的字符集设置。
MySQL中关于连接环境的字符集设置有
Client端,connection,
results
通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。
上面是我抄网上的资料来的。我试了一下。发现
mysql>
show
variables
like
'char%';
+--------------------------+----------------------------+
|
Variable_name
|
Value
|
+--------------------------+----------------------------+
|
character_set_client
|
latin1
|
|
character_set_connection
|
latin1
|
|
character_set_database
|
latin1
|
|
character_set_filesystem
|
binary
|
|
character_set_results
|
latin1
|
|
character_set_server
|
latin1
|
|
character_set_system
|
utf8
|
|
character_sets_dir
|
/usr/share/mysql/charsets/
|
+--------------------------+----------------------------+
8
rows
in
set
(0.00
sec)
解决方法已经找到。进入数据后
use
数据库名;
names
utf8;
不过这样会每次进入都必须重新设置。因此。还可以在/etc/mysql/my.conf里添加
[mysql]
#no-auto-rehash
#
faster
start
of
mysql
but
no
tab
completition
default-character-set=utf8
这样数据库就不每次按照utf8字符集来导入到数据库了
⑶ java操作mysql数据库,插入数据的问题
觉得你没调用stmt.executeupdate();这句吧,你可以改成我下面的形式试试。在这之前你得确认连接上数据库了吗?如果你打印con取到了值(或者单步调式看con取到了值)。然后将insert
into
employee(id,name,sex,born,nation,minzu,zheng,marry,school,wei,tel,address)
values
('"+snumber+"','"+sname+"','"+ssex+"','"+sbir+"','"+shometown+"','"+snation+"','"+sstatus+"','"+smarrage+"','"+secation+"','"+sposition+"','"+smobile+"','"+saddress+"')");
改成insert
into
employee(id,name,sex,born,nation,minzu,zheng,marry,school,wei,tel,address)
values
(?,?,?,?,?,?,?,?,?,?,?,?)");
然后这样子做:
stmt.setstring(1,值);
stmt.setstring(2,值);
直至塞完你要插入的值,如果是int的,里面也有stmt.setint(3,值);
还有float的就有stmt.setfloat(4,值);总之,你想赛什么样的值它都有方法的。
然后你再调用stmt.executeupdate();就ok了
都给你说了没调用stmt.executeupdate();
怎么不去试试调用stmt.executeupdate();呢,调了后没有再找我!
⑷ 从java中向mysql中的表中插入数据
感觉按照楼主的意思其实是想更新一条记录吧。
假设一条学生信息包含id,name,score;
如果现在id和name有了但是score没有那就直接update
update 表名 set score=‘分数’ where id='该学生的id'
如果楼主是想表达插入一条数据的话,那只插一个字段就可能会有一些问题
还是以学生信息为例,因为一般来说id是主键,如果这里只插入score而id没有值肯定会报错的
但是如果插入的时id,那么只要表里的其他字段没有非空限制那就是没有问题的
⑸ 小菜鸟求教JAVA向MYSQL插入数据
在执行查询时发现一个错误,查询过程和错误信息被记录在:C:\C:\Users\Administrator\AppData\Roaming\SQLyog\sqlyog.err.
请打开这个文件查看具体的错误原因。
在导入数据库之前,选择你要导入数据的数据库,再导入数据就OK了。
⑹ Java里用INSERT INTO VALUES()向mysql插入数据,VALUES里面的值是变量怎么办
VALUES 语句
具体语法:VALUES row_constructor_list[ORDER BY column_designator][LIMIT BY number] row_constructor_list: ROW(value_list)[, ROW(value_list)][, ...]value_list: value[, value][, ...]column_designator: column_index
VALUES 语句,用做功能展示或者快速造数据场景,结果列名字以 COLUMN_0 开头,以此类推,举个简单例子。单条 VALUES 语句mysql-(ytt/3305)->values row(1,2,3);+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+| 1| 2| 3|+----------+----------+----------+1 row inset(0.00 sec)
多条 VALUES 语句mysql-(ytt/3305)->values row(1,2,3),row(10,9,8);+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+| 1 | 2 | 3 || 10 | 9 | 8 |+----------+----------+----------+2 rows in set (0.00 sec)
多条 VALUES 联合 UNION ALLmysql-(ytt/3305)->values row(1,2,3),row(10,9,8) union all values \ row(-1,-2,0),row(10,29,30),row(100,20,-9);+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+| 1 | 2 | 3 || 10 | 9 | 8 || -1 | -2 | 0 || 10 | 29 | 30 || 100 | 20 | -9 |+----------+----------+----------+5 rows in set (0.00 sec)
根据字段下标排序,从 1 开始mysql-(ytt/3305)->values row(1,2,3),row(10,9,8) union all values \ row(-1,-2,0),row(10,29,30),row(100,20,-9) order by 1 desc ;+----------+----------+----------+| column_0 | column_1 | column_2 |+----------+----------+----------+| 100 | 20 | -9 || 10 | 9 | 8 || 10 | 29 | 30 || 1 | 2 | 3 || -1 | -2 | 0 |+----------+----------+----------+5 rows in set (0.00 sec)
类型可以任意组合:bit,json,datetime,int,decimal 等mysql-(ytt/3305)->values row(100,200,300),\ row('2020-03-10 12:14:15','mysql','test'), \ row(16.22,TRUE,b'1'), \ row(left(uuid(),8),'{"name":"lucy","age":"28"}',hex('dble'));+---------------------+----------------------------+--------------------+| column_0 | column_1 | column_2 |+---------------------+----------------------------+--------------------+| 100 | 200 | 0x333030 || 2020-03-10 12:14:15 | mysql | 0x74657374 || 16.22 | 1 | 0x01 || c86fd1a7 | {"name":"lucy","age":"28"} | 0x3634363236433635 |+---------------------+----------------------------+--------------------+4 rows in set (0.00 sec)
新建表 t3,把刚才这些记录写进去mysql-(ytt/3305)->create table t3 (r1 varchar(100),r2 varchar(100),r3 varchar(100));Query OK, 0 rows affected (0.02 sec)
写入到表 t3mysql-(ytt/3305)->insert into t3 values row(100,200,300), \ row('2020-03-10 12:14:15','mysql','test'), \ row(16.22,TRUE,b'1'),\ row(left(uuid(),8),'{"name":"lucy","age":"28"}',hex('dble'));Query OK, 4 rows affected (0.00 sec)Records: 4 Duplicates: 0 Warnings: 0
⑺ java无法通过textfield向mysql插入数据
String sql= "INSERT INTO bxqd(name,jfh,jwh) values(s1,s2,s3)";
这句话错了,字符串拼接的。正确的写法:
String sql= "INSERT INTO bxqd(name,jfh,jwh) values('"+s1+"','"+s2+"','"+s3+"')";
这样就正确了。
序号的插入在表里面设置自增主键,每次插入数据都会自增1
日期也可以用默认值设置,xx date default CURRENT_TIMESTAMP
⑻ 用java连接mysql实现对表中的数据查找,插入,修改等功能,
JDBC操作MySQL数据库的步骤
1、准备MySQL数据库驱动包:mysql-connector-java-5.0.8-bin.jar,一个项目中只能存在一个版本的驱动包
a、复制该驱动包,粘贴到项目中
b、选中项目里的驱动包,右键->Build Path->Add to Build Path
2、在类里写代码加载驱:决定连接哪种数据库
a、Class.forName("com.mysql.jdbc.Driver");
b、必须进行异常处理:ClassNotFoundException
3、连接数据库
a、Connection con=DriverManager.getConnection("连接字符串", "用户名", "密码");
b、连接字符串格式固定,不同数据库,格式不同:jdbc:mysql://要连接的计算机名称:端口号/要连接的数据库名称
c、必须进行异常处理:SQLException
4、拼写要执行的sql语句,必须是可以在数据库中执行的
5、创建执行sql语句的对象
a、Statement stmt=con.createStatement();
b、注意:Statement必须来自于java.sql包中
6、执行sql语句
a、执行insert、update和delete语句:int row=stmt.executeUpdate(sql);返回影响行数
b、执行查询语句:ResultSet rs=stmt.executeQuery(sql);返回查询结果
c、执行任意sql语句(DDL、DCL、DML和DQL等)
7、对执行结果进行处理
a、执行更新语句:判断影响行数是否为0,0表示失败,非0表示成功
b、对查询结果进行处理:
1) 结果集需要先移动、后取值 :rs.next();int id=rs.getInt(1);
String name=rs.getString("loginName");
2) 结果集有多条时,需要循环操作:
while(rs.next()){ System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getInt(5));
}
3) 不确定是否有查询结果时:if(rs.next()){说明有查询结果}else{没有查询结果}
4) 使用了聚合函数,一定有查询结果,查询结果是一行一列:
rs.next();
int result=rs.getInt(1);
注意:结果集取值时取出的时查询语句中包含的字段,与表中字段无关
9、关闭相关对象(先关闭结果集对象、在关闭执行语句对象,最后关闭连接对象)
例如:执行查询语句
Scanner input=new Scanner(System.in);
System.out.print("请输入登录名: ");
String name=input.next();
System.out.print("请输入密码: ");
String pass=input.next();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");
String sql="select COUNT(*) from UserInfo where loginName='"+name+"' and loginPass='"+pass+"'";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();
int result=rs.getInt(1);
if(result!=0){
System.out.println("登录成功!");
}else{
System.out.println("用户名或密码错误,请重新登录!");
}
rs.close();
stmt.close();
con.close();
} catch (ClassNotFoundException e) {
System.out.println("加载驱动错误:"+e.getMessage());
} catch (SQLException e) {
System.out.println("数据库操作错误:"+e.getMessage());
}
执行添加、修改和删除语句
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//连接数据库
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");
//拼写要执行的sql语句
String sql="update UserInfo set loginPass='111' where loginName='a'";
//String sql="insert UserInfo values(default,'test','test')";
//String sql="delete from UserInfo where loginName='a'";
//创建执行语句对象
Statement stmt=con.createStatement();
//执行
int row=stmt.executeUpdate(sql);
//处理结果
if(row==0){
System.out.println("修改失败!");
}else{
System.out.println("修改成功!");
}
//关闭
stmt.close();
con.close();
} catch (ClassNotFoundException e) {
System.out.println("驱动加载错误:"+e.getMessage());
} catch (SQLException e) {
System.out.println("数据库操作错误:"+e.getMessage());
}
⑼ 用java插入mysql表格数据怎么理
你都没写sql语句啊。String sql = "insert into news(title,content) values(?,?)"
PrepareStatement ps = new Preparestatement(sql);
ps.setString(1,"title123");
ps.setString(2,"content456");
ps.executeUpdate();
另外jdbc:mysql://192.168.1.189/"+ dbName +
dbName 改为test;
连接用完之后别忘记关闭。
⑽ java连接mysql插入数据问题
不报错有可能是成功了,成功了你没有提示的