springmvc+mybatis一次操作多张表插入的问题

如题,本人才接触Java的springmvc,前端的一次保存点击事件,后端需要分别向5张表插入数据,看了网上的demo,几乎一张表对应一个mapper,mapper里面有对应这张表的操作,五张表执行插入操作。。。任何一张出问题就回滚,自然想到用事务来控制,但是貌似网上也没有怎么看到这方面的说明。。。。目前的插入数据方式是kssryjbxxbService.insert(kssryjbxx); 这种方式,有没有事务控制可回滚的方式,比如sqlsession,sringmvc里面怎么使用sqlsession,还有就是问个额外的问题,目前开发的系统涉及到几百张表。。。都写mapper的话太麻烦了,有没有老式的直接执行sql语句的操作方式。。。而不是每张表都去建立对应的dao,mapper,service....

1个回答

有,你可以直接在一个map中写一个入参变量,然后在dao层拼接sql就可以。而且事务聂可以用aop进行处理。你说的问题跟下面这个类似。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
springmvc+mybatis一次操作多张表插入的问题
如题,本人才接触Java的springmvc,前端的一次保存点击事件,后端需要分别向5张表插入数据,看了网上的demo,几乎一张表对应一个mapper,mapper里面有对应这张表的操作,五张表执行插入操作。。。任何一张出问题就回滚,自然想到用事务来控制,但是貌似网上也没有怎么看到这方面的说明。。。。目前的插入数据方式是kssryjbxxbService.insert(kssryjbxx); 这种方式,有没有事务控制可回滚的方式,比如sqlsession,sringmvc里面怎么使用sqlsession,还有就是问个额外的问题,目前开发的系统涉及到几百张表。。。都写mapper的话太麻烦了,有没有老式的直接执行sql语句的操作方式。。。而不是每张表都去建立对应的dao,mapper,service....
SpringMVC+Mybatis mysql语句 批量插入 无法 返回主键的问题
<insert id="insertList" parameterType="java.util.List"keyProperty="id"useGeneratedKeys="true"> INSERT INTO table_A ( a,b,c ) VALUES <foreach collection="list" close=")" item="item" open="(" separator=","> #{item.a},#{item.b},#{item.c} </foreach> </insert> 主键id是自增型,支持自动生成 报错是 未找到属性id
springmvc + mybatis 设计抛弃实体对象有什么优缺点?
本人实习生一个,最近公司有个新项目,组长说使用springmvc+mybatis做,所有的属性都写入Map<String,Object>中,交给mybatis操作给数据库。 比如: 数据库表: CREATE TABLE `t_user` ( `user_id` int(11) NOT NULL auto_increment, `user_name` varchar(255) default NULL, `user_age` int(11) default NULL, PRIMARY KEY (`user_id`) ) mybatis 插入: <insert id="insertUser" parameterType="map" keyProperty="user_id" useGeneratedKeys="true" > insert into t_user ( usr_name, user_age )values( #{userName}, #{userAfe} ) </insert> 对应的方法: public Boolean insertUser(Map<String, Object> params); 然后再使用该方法时新建一个 Map<String, Object> params = new HashMap<String, Object>(); params.put("userName","xx"); params.put("userAge","xx"); 之后调用方法,成功插入。 这个流程完全抛弃了User对象,也就是没有创建User类对象,这样的设计有什么好处吗? 以前在学校学的都是面向对象,不管什么,必须创建一个实体映射数据库,现在这种实现没有使用 mvc设计中的m,这样与面向对象的设计有什么区别,优缺点在那?
求助,mybatis不提交,脏数据问题
大家好,有个项目使用的是springmvc mybatis ,现在遇到个非常头疼的问题。 一个非常简单的插入语句,偶尔出现这样的问题:一个用户请求插入提示成功,并且在另外的查询界面能够查到自己这条记录,但是!数据库里没有这条记录! 用户重启应用,重启手机,都还是一样能查到并不存在的数据。我们重启一下服务,用户才能请求到真正的数据。 唉,快被搞疯了,这种情况还经常发生,看了很多说是mybatis缓存问题,但mybatis除了查询不是不走缓存么,二级缓存默认也是关闭的啊。 应用是tomcat部署的,这个tomcat还有其他三个应用,数据库是oracle 各位大神帮帮忙,感谢感谢!
mybatis插入数据关联表
![![![图片说明](https://img-ask.csdn.net/upload/201703/27/1490601660_641226.png)图片说明](https://img-ask.csdn.net/upload/201703/27/1490601645_988379.png)图片说明](https://img-ask.csdn.net/upload/201703/27/1490601634_603391.png) 我如何实现添加附加费数据的时候将附加费关联表的的数据同时添加 求大神告知 使用springmvc+mybatis
在springmvc+mybatis项目中,如何设计优雅的entity class?
当前想用spring+springmvc+mybatis搭建一个MS系统,刚使用spring+mybatis不久,基本上可以完成想要的功能。 但是在设计entity的时候,对于有外键依赖的entity class,不知道如何设计比较好。 望大牛们指点一下。 以用户表为例, User里面的外键roleId, 在这里到底是用一个Int roleId 还是Role对象呢? 疑惑的地方: * 在实际使用过程中,在读取User的时候需要同时读取Roled的信息,Role貌似合理 * 但是在插入的时候,仅插入roleId,而DAO层插入参数是User 对象,需要构造一个Role对象并set到User中。。。 数据库表: ``` CREATE TABLE IF NOT EXISTS `wms`.`wms_user` ( `user_id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID', `user_name` VARCHAR(15) NOT NULL DEFAULT '' COMMENT '用户名称', `user_realname` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '用户真实姓名', `user_password` VARCHAR(40) NOT NULL DEFAULT '' COMMENT '用户密码', `user_email` VARCHAR(40) NOT NULL DEFAULT '' COMMENT 'email地址', `user_role_id` SMALLINT(4) unsigned NOT NULL DEFAULT '0' COMMENT '用户角色', PRIMARY KEY (`user_id`) )ENGINE = InnoDB DEFAULT CHARSET=UTF8 COMMENT '用户表'; CREATE TABLE IF NOT EXISTS `WMS`.`wms_role`( `role_id` INT unsigned NOT NULL AUTO_INCREMENT COMMENT '角色id', `role_name` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '角色名称', `role_permission` VARCHAR(200) NOT NULL DEFAULT '' COMMENT '角色权限', PRIMARY KEY (`role_id`) )ENGINE = InnoDB DEFAULT CHARSET=UTF8 COMMENT '角色信息表'; ``` entity class: ``` public class User { private long userId; private String userName; private String userRealname; private String userPassword; private String userEmail; private Role role; } public class Role { private int roleId; private String roleName; private String rolePermission; } ``` Dao: ``` public interface UserDao { int insertUser(User user); int deleteUser(long userId); int updateUser(User user); User queryByUserId(long userId); } ```
springMVC+mybatis插入数据中文乱码 大神看看哪里错了
![图片说明](https://img-ask.csdn.net/upload/201701/24/1485227652_185856.png) ![图片说明](https://img-ask.csdn.net/upload/201701/24/1485227664_983449.png) ![图片说明](https://img-ask.csdn.net/upload/201701/24/1485227674_60043.png)
SpringMVC+Mybatis 出现新增数据偶尔查不到的情况。
情况1: 重启服务后,新增数据的插入没有问题,数据库中能查到,但是项目中查询的结果是浮动的, 即偶尔查询正确,偶尔会出现本次重启服务后新增数据没查到,仅查询到原有数据(重启服务之前 已有的数据)的情况; 情况2: 在重启服务后,原有的数据不会出现查询时丢数据的情况; 情况3: 已上现象为整个项目中普遍存在的情况,即任意表都会出现上述情况; 情况4: 上述查询问题即使在不存在事务的简单查询中也存在; 附示例: 以下为筛选日志结果: 数据库记录数为3条,查询结果为2和3,并且一直持续存在; 、、、 [ERROR]-[Thread: 201712022233077548st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223308468Dst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233088862st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233093165st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223309843Fst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233102741st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233109243st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233116034st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233123791st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233130438st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233136847st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233144678st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223314845Cst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233152237st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223315588Est.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233159568st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223316739Bst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233173903st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233180297st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223318843Cst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233194784st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233201245st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223320520Fst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233210862st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233214528st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223321817Cst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233224558st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223323240Cst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223323909Dst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233245542st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233253420st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233259899st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223326365Fst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233267379st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233271049st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223327605Est.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233282475st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233288928st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233298680st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 20171202223330510Dst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233311501st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233319217st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223332300Ast.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 201712022233326794st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223333046Dst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===2 [ERROR]-[Thread: 20171202223333414Cst.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233342048st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233348460st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233354911st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 [ERROR]-[Thread: 201712022233362800st.ParameterRequest.printTheResponsePara()]: ===Para:[1, 2]===3 、、、 以下为查询结果为2时的查询sql 、、、 [20171202223331921753A0] [DEBUG] org.mybatis.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@82fbac2] [20171202223331921753A0] [DEBUG] org.mybatis.spring.SqlSessionUtils - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@82fbac2] from current transaction [20171202223331921753A0] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - ==> Preparing: select * from `orders` WHERE `member_id`= ? and `order_state` IN ( ? , ? ) order by id desc limit ?,? [20171202223331921753A0] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - ==> Parameters: 24(String), 1(Integer), 2(Integer), 0(Integer), 10(Integer) [20171202223331921753A0] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - <== Total: 2 、、、 以下为查询结果为3时的查询sql 、、、 [20171202223333414C2A60] [DEBUG] o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource [20171202223333414C2A60] [DEBUG] o.m.s.t.SpringManagedTransaction - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@708060c1] will not be managed by Spring [20171202223333414C2A60] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - ==> Preparing: select * from `orders` WHERE `member_id`= ? and `order_state` IN ( ? , ? ) order by id desc limit ?,? [20171202223333414C2A60] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - ==> Parameters: 24(String), 1(Integer), 2(Integer), 0(Integer), 10(Integer) [20171202223333414C2A60] [DEBUG] c.T.d.s.w.o.O.getOrdersForMulti - <== Total: 3 [20171202223333414C2A60] [DEBUG] org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3103e6df] [20171202223333414C2A60] [DEBUG] o.s.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource [20171202223333414C2A60] [DEBUG] org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession [20171202223333414C2A60] [DEBUG] org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@222f700b] was not registered for synchronization because synchronization is not active 、、、
Spring+Mybatis 向oracle的Clob字段插入报错 在线等!
项目是使用Spring+SpringMVC+Mybatis构建的,使用JUnit4写了个测试类直接调用serivice层的update方法是可以成功插入,但是在Controler层调用service中的update方法就报错,下o: Cause: java.sql.SQLException: 数据大小超出此类型的最大值: 35845 ; uncategorized SQLException for SQL []; SQL state [null]; error code [17070]; 数据大小超出此类型的最大值: 35845; nested exception is java.sql.SQLException: 数据大小超出此类型的最大值: 35845 org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: 数据大小超出此类型的最大值: 35845 ### The error may involve com.ffcs.cq.repository.mybatis.work.BugMybatisDao.update-Inline ### The error occurred while setting parameter DETAIL=? WHERE DBID = ? ### Cause: java.sql.SQLException: 数据大小超出此类型的最大值: 3650 ; uncategorized SQLException for SQL []; SQL state [null]; error code [17070]; 数据大小超出此类型的最大值: 3650; nested exception is java.sql.SQLException: 数据大小超出此类型的最大值: 3650 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) ~[spring-jdbc-4.0.5.RELEASE.jar:4.0.5.RELEASE] at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-4.0.5.RELEASE.jar:4.0.5.RELEASE] at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ~[spring-jdbc-4.0.5.RELEASE.jar:4.0.5.RELEASE] at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73) ~[mybatis-spring-1.2.2.jar:1.2.2] at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371) ~[mybatis-spring-1.2.2.jar:1.2.2] at com.sun.proxy.$Proxy18.update(Unknown Source) ~[na:na] at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:254) ~[mybatis-spring-1.2.2.jar:1.2.2] at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:54) ~[mybatis-3.2.8.jar:3.2.8] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52) ~[mybatis-3.2.8.jar:3.2.8] at com.sun.proxy.$Proxy35.update(Unknown Source) ~[na:na] at com.ffcs.cq.service.work.BugService.modify(BugService.java:395) ~[BugService.class:na] at com.ffcs.cq.service.work.BugService$$FastClassBySpringCGLIB$$83194116.invoke(<generated>) ~[spring-core-4.0.5.RELEASE.jar:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.0.5.RELEASE.jar:4.0.5.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708) ~[spring-aop-4.0.5.RELEASE.jar:4.0.5.RELEASE]
求帮助最近学到SpringMVC-MyBatis,遇到问题求帮助
在某内学了3个月学的一脸懵逼,由于是没基础所以学的不怎么好,求大神帮助 mybatis插入数据到数据库中,实体类的属性名与数据库的字段名不一致,怎么解决?查询可以用别名或者resultMap来解决,但增删改咋解决,他们没有返回值呀 ``` <resultMap type="com.tarena.netctoss.entity.Cost" id="costmap"> <result property="costId" column="cost_id"/> <result property="baseDuration" column="base_duration"/> <result property="baseCost" column="base_cost"/> <result property="unitCost" column="unit_cost"/> <result property="costType" column="cost_type"/> </resultMap> <insert id="save" parameterType="com.tarena.netctoss.entity.Cost" > INSERT INTO cost_sm VALUES(cost_seq.nextval,#{name}, #{baseDuration}, #{baseCost}, #{unitCost}, '1',#{descr},sysdate, null,#{costType}) </insert> ```
mysql批量一对多插入问题
最近碰到一个问题,要做一个批量生成功能,比如批量生成200万条数据,插入两个表,a表的id是b表的外键,a表与b表是1对多的关系,项目主要用springmvc和mybatis,mysql,请问这个怎么实现,a,b表目前主键都是自增的
批量插入数据的问题,怎样插入最快最合理
需求场景是系统web端发送一条系统消息,需要向用户消息表给每个用户插入一条该系统消息,假如用户有万级百万级,该怎么插入最快最合理。后台springMVC+mybatis,mysql数据库
webmagic出错 在爬虫类里实行插入语句出错 哪位大神帮帮我啊 谢谢
![图片说明](https://img-ask.csdn.net/upload/201603/17/1458182659_818471.png) 项目用的是SpringMvc 和 myBatis ,请求到controller后再service的实现类A里进行逻辑操作,A里查出爬虫类里需要的数据对象的列表,然后调用爬虫类,将A里的查的数据穿进去,并在爬虫类的process(Page page)方法里将爬出的数据插入数据库,问题就出在插入时报空指针,可我的确是有set进数据的 错误代码如图 求大神解救 谢谢
mybatis insert插入语句以后 一直报错怎么回事 怎么在保存以后获取保存对象的id
项目采用的框架是springmvc mybatis 数据库 mysql 控制器代码: 还有怎么在保存一一张表的同时 保存到另一张表 把A表的id 保存到B表(关联的表) ``` List<EarDiseaseSwtj> listEdSwtj=earStudyService.findEdByid(id1); if (listEdSwtj.size() != 0) { //int num2 = earDisease100Service.updateEdSwtj(id1, name, desc);// 修改的仅是ear_disease_100这个表 int num2=earStudyService.updateEdSwtj(id1, name, desc); if (num2 != 0) { request.setAttribute("ok", "修改成功"); } return "manage/forJsp.do?&requestType=17&num1=" + currentPageNum1; } else { //earStudyService.saveEdSwtj(id1, name, desc); earStudyService.saveEdSwtj(name, desc); request.setAttribute("ok", "添加成功"); return "manage/forJsp.do?&requestType=17&num1=" + currentPageNum1; } } ``` mybatis sql如下: ``` <insert id="saveEd" parameterType="EarDiseaseSwtj"> insert into dt_ear_disease_swtj (name,desc) values (#{name},#{desc}) </insert> ``` 报错代码如下: ``` HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: type Exception report message Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: description The server encountered an internal error that prevented it from fulfilling this request. exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 ### The error may involve com.app.dao.mapper.EarDiseaseSwtjMapper.saveEd-Inline ### The error occurred while setting parameters ### SQL: insert into dt_ear_disease_swtj (name,desc) values (?,?) ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) javax.servlet.http.HttpServlet.service(HttpServlet.java:650) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) root cause org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 ### The error may involve com.app.dao.mapper.EarDiseaseSwtjMapper.saveEd-Inline ### The error occurred while setting parameters ### SQL: insert into dt_ear_disease_swtj (name,desc) values (?,?) ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 ; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('qqqe','eqeqe')' at line 2 org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:71) org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:365) sun.proxy.$Proxy10.insert(Unknown Source) org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:237) org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:79) org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40) sun.proxy.$Proxy39.saveEd(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) sun.proxy.$Proxy40.saveEd(Unknown Source) com.app.dao.impl.EarDiseaseSwtjDaoImpl.saveEd(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) sun.proxy.$Proxy41.saveEd(Unknown Source) com.app.service.impl.EarStudyServiceImpl.saveEdSwtj(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) sun.proxy.$Proxy99.saveEdSwtj(Unknown Source) com.app.totalController.ManageController.forJsp(Unknown Source) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:427) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:788) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:717) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) javax.servlet.http.HttpServlet.service(HttpServlet.java:650) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) root cause ```
mysql 错误日志code '0'
客户端向服务器端mysql 插入数据,日志打印错误信息 Unable to translate SQLException with Error code '0', will now try the fallback translator Extracted SQL state class 'S1' from value 'S1009' 使用的是amoeba配置的主从分离mysql数据库群。直接使用navicat客户端插入数据可正确执行。 项目使用的是mybatis + SpringMVC
spring mybatis集成,出错不回滚
配置文件,spring-servelt.xml <!-- 加载Controller --> <context:component-scan base-package="com"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan> <!-- 启动对@AspectJ注解的支持 --> <aop:aspectj-autoproxy /> <!-- 手动注册AnnotationMethodHandlerAdapter,可以手动设置编码,解决使用ResponseBody返回数据时的中文乱码问题 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> <!-- 这个配置需要spring 3.1支持,并增加 jackson-all-1.9.11.jar 解决springmvc返回json问题 --> <!-- jackson2 如果升级jackson为2.x版本,哪么需要更改下面的配置。MappingJackson2HttpMessageConverter --> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/page/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 下面这一行必须加,如果不加静态资源访问是正确,动态的访问就出错了 --> <mvc:annotation-driven /> <!-- 静态资源访问控制 --> <!-- <mvc:resources mapping="/WEB-INF/**" location="/WEB-INF/" /> --> <mvc:resources mapping="/images/**" location="/images/" /> <mvc:resources mapping="/control/**" location="/control/" /> 配置文件spring-config.xml <!-- 加载service --> <context:component-scan base-package="com"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service" /> </context:component-scan> <!-- 数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="connectionProperties" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@192.168.0.222:1521:orcl" /> <property name="username" value="framedb" /> <property name="password" value="qaz123" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="1" /> <property name="minIdle" value="1" /> <property name="maxActive" value="20" /> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="60000" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value=" SELECT 1 FROM DUAL" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> <!-- 配置监控统计拦截的filters --> <property name="filters" value="stat" /> </bean> <!-- define the SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="com.common.frame.login.model, com.common.frame.authorize.model, com.common.frame.organization.model, com.common.frame.security.model, com.common.frame.resourec.model" /> <!-- 此处不可以使用*号做通配符,如果想引入多个包,必须多次引入,使用“,”号分割 --> <!-- Pagehelper分页插件 开始 2015-3-31 ssx--> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageHelper"> <property name="properties"> <value> dialect=oracle reasonable=true params=count=countSql;pageSizeZero=zero </value> </property> </bean> </array> </property> <!-- Pagehelper分页插件 结束 --> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> <property name="basePackage" value="com.common.frame.*.mapper" /> <!-- 此处可以使用*号做通配符 --> </bean> <!-- transaction manager, use JtaTransactionManager for global tx --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> <qualifier value="user" /> </bean> service方法 @Transactional(rollbackFor=Exception.class) public void getTest() { try { OrganModel organ = new OrganModel(); organ.setOrganId("11hh"); organ.setOrganCode("11hh"); organ.setOrganName("11hh"); organ.setOrganAbb("11hh"); organ.setIsUse("1"); organ.setCreateBy("111"); organ.setCreateTime("bbbb"); organMapper.insert(organ); OrganTypeModel organType = new OrganTypeModel(); organTypeMapper.insert(organType); } catch (RuntimeException e) { e.printStackTrace(); } } 执行到这个方法,本方法实现了两个插入,第一个插入没有问题通过,第二个插入报错,但第一个插入在报错之后未回滚。不知道为什么,请告知。谢谢
JavaWeb项目,实时将数据显示到网页上当数据库插入前台网页 马上就要的数据时
现在后台用的springmvc+mybatis,前台extjs;要实现前台要查一个数据(比 如北京的温度,),就更新数据测试北京温度的字段为true,(其他的程序【非本 JavaWeb程序】就读取数据库去查这个地方的数据(传感器测的),然后将温度写 入数据库,但是不知道什么时候能写入数据库(网络等多种因素影响),一旦写入 就实时发送到前台(北京的温度这条记录)。不知道各位大侠一般用的什么解决方 案,谢谢指点!
SpringBoot+Hibnernate+Junit事务问题
SpringBoot+Hibnernate+Junit,在单元测试中调用save方法插入实体后,执行findAll或CountAll后 并不包含刚刚插入的数据。 注:Rollback为true,我不想让数据库生效,只做测试使用。 困扰我几天了,请大家帮我找到原因了。 使用Mybatis就没有这个问题,以前使用SpringMVC+Hibernate也没有这个问题。
ueditor1.4.3jsp utf-8版 无法插入和替换图片 一直显示默认的gif动画(圈圈)提示正在上传
无论插入什么图片后台编辑器显示的src路径都不会改变 一直是个默认的文件 ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513526316_815431.png) 项目框架: springmvc+mybatis 1-项目结构目录: ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513511646_693650.png) --------------------- 2-页面展示情况: ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513511346_41873.png) ---------------------- 3-后台接受的数据 一直是个 官方的 gif文件: ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513511379_148003.png) ----------------------- 4-从ueditor 后台就收的数据: ![图片说明](https://img-ask.csdn.net/upload/201712/17/1513511789_25920.png)
大神们求助,Unknown column 'userName' in 'field list'
日志: 严重: Servlet.service() for servlet springMVC threw exception com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'userName' in 'field list' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:403) at com.mysql.jdbc.Util.getInstance(Util.java:378) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3361) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3295) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1852) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1975) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2476) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1583) at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:988) at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:41) at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:66) at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:45) at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:108) at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:75) at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:145) at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:134) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:355) at com.sun.proxy.$Proxy12.insert(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:237) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:79) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40) at com.sun.proxy.$Proxy16.addUser(Unknown Source) at com.fu.ssm.daoimpl.UserDaoimpl.addUser(UserDaoimpl.java:34) at com.fu.ssm.servicesimpl.UserServiceimpl.addUser(UserServiceimpl.java:28) at com.fu.ssm.controller.UserController.addUser(UserController.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:175) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:446) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:434) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:745) 我写的sql <!-- 插入一条数据 --> <insert id="addUser" parameterType="com.fu.ssm.pojo.User" keyProperty="id"> insert into user (userName,password,age,remark) values (#{userName,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},#{age,jdbcType=INTEGER},#{remark,jdbcType=VARCHAR}) </insert>
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 图片上传 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd
立即提问