1. 基本操作
db, err := gorm.Open(" mysql " , " user:password@/dbname?charset=utf8&parseTime=True&loc=Local " )
func () TableName() string { return "" }
db.Model(&struct name here>{})
b) 指定列名称:(来自手册):
type User struct {
ID uint // 列名为 `id`
Name string // 列名为 `name`
Birthday time.Time // 列名为 `birthday`
CreatedAt time.Time // 列名为 `created_at`
}
// 重设列名
type Animal struct {
AnimalId int64 `gorm: " column:beast_id " ` // 设置列名为`beast_id`
Birthday time.Time `gorm:" column:day_of_the_beast " ` // 设置列名为`day_of_the_beast`
Age int64 `gorm:" column:age_of_the_beast " ` // 设置列名为`age_of_the_beast`
}
c) 如何获取查询到的数据?
用api,user可以是struct的slice或者单一对象:
// 获取第一条记录 ,按主键排序
db.First(&user)
/// / SELECT * FROM users ORDER BY id LIMIT 1;
// 获取最后一条记录,按主键排序
db.Last(&user)
/// / SELECT * FROM users ORDER BY id DESC LIMIT 1;
// 获取所有记录
db.Find(&users)
/// / SELECT * FROM users;
// 使用主键获取记录 / 这个可以直接用where做。。
db.First(&user, 10 )
/// / SELECT * FROM users WHERE id = 10;
也可以选择用Scan将结果扫描到结构体中(变量名要匹配)
type Result struct {
Name string
Age int
}
var result Result
db.Table( " users " ).Select(" name, age " ).Where(" name = ? " , 3 ).Scan(&result)
sql返回多条数据时,可以将结果扫描进数组,另一种方式是使用.Rows(),逐行读取数据。
3)Update
只要执行就update,更新user
也有update方法,如果有筛选条件(where),夹在update前。
db.Model(&user).Update(" name " , " hello " )
其他update方法可以check官方文档
4) 读锁
Select for Update
db.First(&model).ForUpdate()
拓展用法:
1. Batch Insert
参考:https://github.com/jinzhu/gorm/issues/255#issuecomment-481159929
type OwnDb struct {
*gorm.DB
}
func (db *OwnDb)BatchInsert(objArr []interface {}) (int64, error) {
// If there is no data, nothing to do.
if len(objArr) == 0 {
return 0 , errors.New(" insert a slice length of 0 " )
}
mainObj : = objArr[0 ]
mainScope : = db.NewScope(mainObj)
mainFields : = mainScope.Fields()
quoted : = make([]string , 0 , len(mainFields))
for i := range mainFields {
// If primary key has blank value (0 for int, "" for string, nil for interface ...), skip it.
// If field is ignore field, skip it.
if (mainFields[i].IsPrimaryKey && mainFields[i].IsBlank) || (mainFields[i].IsIgnored) {
continue
}
quoted = append(quoted, mainScope.Quote(mainFields[i].DBName))
}
placeholdersArr : = make([]string , 0 , len(objArr))
for _, obj := range objArr {
scope : = db.NewScope(obj)
fields : = scope.Fields()
placeholders : = make([]string , 0 , len(fields))
for i := range fields {
if (fields[i].IsPrimaryKey && fields[i].IsBlank) || (fields[i].IsIgnored) {
continue
}
var vars interface {}
if (fields[i].Name == " CreatedAt " || fields[i].Name == " UpdatedAt " ) && fields[i].IsBlank {
vars = gorm.NowFunc()
} else {
vars = fields[i].Field.Interface()
}
placeholders = append(placeholders, scope.AddToVars(vars))
}
placeholdersStr : = " ( " + strings.Join(placeholders, " , " ) + " ) "
placeholdersArr = append(placeholdersArr, placeholdersStr)
// add real variables for the replacement of placeholders' '?' letter later.
mainScope.SQLVars = append(mainScope.SQLVars, scope.SQLVars...)
}
mainScope.Raw(fmt.Sprintf( " INSERT INTO %s (%s) VALUES %s " ,
mainScope.QuotedTableName(),
strings.Join(quoted, " , " ),
strings.Join(placeholdersArr, " , " ),
))
// Execute and Log
if err :=mainScope.Exec().DB().Error;err != nil {
return 0 ,err
}
return mainScope.DB().RowsAffected,nil
}
如何用?
db,err := gorm.Open(c.Driver, uri)
if err != nil { panic("Database connection failed") } db.LogMode(c.LogMode) DB := &OwnDb{DB:db}
yourDataList := make([]interface {}, len(...))
向这里append
batchInsert(db, yourDataList)
2. Transaction
一个思路:把rollback写入defer recover / err中,一旦发生panic就回滚rollback,执行全部命令就commit
// begin a transaction
tx := db.Begin()
// do some database operations in the transaction (use 'tx' from this point, not 'db')
tx.Create(...)
// ...
// rollback the transaction in case of error
tx.Rollback()
// Or commit the transaction
tx.Commit()
func Transaction(){
conn, tx : = NewTransaction(db.Begin())
defer tx.Close()
if err := conn.Create(&xxx).Error; err != nil {
tx.Fail()
}
if err := conn.Update(&yyy); err != nil {
tx.Fail()
}
if err := conn.tx.Delete(&zzz); err != nil {
tx.Fail()
} //add other err you want to handle here
})
}
你可能感兴趣的:(Golang 连接数据库 Gorm 使用笔记)
golang中使用mysql事务
彩色代码
Golang编程语言 MySQL数据库 mysql golang 数据库
在Go语言中,可以使用第三方库来处理MySQL事务。在示例中,我们将使用database/sql包与github.com/go-sql-driver/mysql驱动程序来连接和执行MySQL数据库操作。首先,确保你已经安装了相应的依赖库。你可以使用以下命令来安装它们:goget-udatabase/sqlgoget-ugithub.com/go-sql-driver/mysql接下来,我们将演示一
Golang实现一个事务型内存数据库
qingwave
Code 数据库 golang redis
内存数据库经我们经常用到,例如Redis,那么如何从零实现一个内存数据库呢,本文旨在介绍如何使用Golang编写一个KV内存数据库MossDB。特性MossDB是一个纯Golang编写、可嵌入的、键值型内存数据库,包含以下特性可持久化,类似RedisAOF(AppendonlyLog)支持事务支持近实时的TTL(TimetoLive),可以实现毫秒级的过期删除前缀搜索Watch接口,可以监听某个键
golang 事务tx
乒乒乓乓丫
golang 开发语言 后端
1.事务txgolang事务-Mr.peter-博客园Go操作Mysql(三)-kaichenkai-博客园golang中事务的使用_zh1303300的博客-CSDN博客_golang事务golangMysql--Tx-Go语言中文网-Golang中文社区2.golangmysql事务(增、删、改、查)golangmysql事务_golang操作mysql示例(增、删、改、查、事务)_Zhuan
Golang后端学习笔记 — 6. Golang操作数据库事务的方法
宝码
Golang后端学习笔记 golang 数据库事务 postgresql
之前,学习了对数据库的每个表执行CRUD操作。真实的场景中,我们经常需要执行一个事务,它组合了多个表的相关操作。本节学习如何在Golang中实现它。在开始之前,先聊一下事务。什么是数据库事务?它是一个单一的工作单元,通常由多个表操作组成。比如:在我们的小银行项目中,我们要从张三的账户中向李四的账户中转账10元。该交易就包括5个操作,涉及到accounts表、entries表和transfers表:
Golang分布式事务_golang 分布式事务
2401_87197933
golang 分布式 开发语言
在TCC事务中,每个事务参与者都需要实现三个方法:Try方法用于执行事务操作,Confirm方法用于确认事务,Cancel方法用于回滚事务。事务协调者通过调用每个参与者的Try方法来执行事务操作,根据返回的结果来决定是否确认或回滚事务。由于TCC事务是用户自定义的,所以可以根据具体的业务需求来实现事务操作的逻辑,并且具有较好的灵活性和可扩展性。消息队列消息队列是一种异步通信机制,可以用于实现分布式
Qt 串口类QSerialPort 使用笔记
一对一答疑的编程作家朱文伟
qt qt 笔记 开发语言
Qt串口类QSerialPort使用笔记虽然现在大多数的家用PC机上已经不提供RS232接口了。但是由于RS232串口操作简单、通讯可靠,在工业领域中仍然有大量的应用。Qt以前的版本中,没有提供官方的对RS232串口的支持,编写串口程序很不方便。现在好了,在Qt5.1中提供了QtSerialPort模块,方便编程人员快速的开发应用串口的应用程序。本文就简单的讲讲QtSerialPort模块的使用。
如何使用Python与MySQL数据库进行查询和更新操作?
程序员总部
python 数据库 python mysql
在当今的开发环境中,数据库操作是程序员日常工作的一部分。Python作为一种流行的编程语言,提供了众多库来简化与数据库的交互。MySQL,作为一种广泛使用的关系型数据库,尤其受欢迎。那么,如何用Python进行MySQL数据库的查询和更新呢?本文会详细介绍一下这个过程,包括如何设置环境、连接数据库以及进行基本的查询与更新操作。环境准备在开始之前,你需要确保你的计算机上安装了Python和MySQL
算法每日一练 (9)
张胤尘
算法每日一练 算法 数据结构
欢迎来到张胤尘的技术站技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌文章目录算法每日一练(9)最小路径和题目描述解题思路解题代码`c/c++``golang``lua`官方站点:力扣Leetcode算法每日一练(9)最小路径和题目地址:最小路径和题目描述给定一个包含非负整数的mxn网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为
搭建测试用的redis集群 访问失败小记
yinhezhanshen
redis golang
redis运行在virtualbox虚拟机的ubuntu中。golang编写的redis客户端代码运行在windows下。首先在ubuntu下启动redis集群下载redis源码,编译成功后,进入utils/create-cluster目录,运行./create-clusterstart./create-clustercreate在windows下编写访问redis代码packagemainimp
golang中实现LRU-K算法(附带单元测试)
我的鱼干呢w
golang 算法 开发语言 lru lru-k
LRU-K中的K代表最近使用的次数,因此LRU可以认为是LRU-1。LRU-K的主要目的是为了解决LRU算法“缓存污染”的问题,其核心思想是将“最近使用过1次”的判断标准扩展为“最近使用过K次”。相比LRU,LRU-K需要多维护一个队列,用于记录所有缓存数据被访问的历史。只有当数据的访问次数达到K次的时候,才将数据放入缓存。当需要淘汰数据时,LRU-K会淘汰第K次访问时间距当前时间最大的数据。LR
golang 从零单排 (一) 安装环境
hamburgerDaddy1
golang 从零单排 golang 开发语言 后端
1.下载安装打开网址TheGoProgrammingLanguage直接点击下载go1.24.1.windows-amd64.msi下载完成直接双击下一步下一步安装完成环境变量自动设置不必配置2.验证win+r输入cmd打开命令行输入goversion
golang深度学习-性能分析
老狼伙计
golang 编程语言 云原生学习笔记 golang 深度学习 开发语言
性能分析Go语言原生支持在运行时保留重要的特征指标和状态,有许多工具可以分析甚至可视化程序运行的状态和过程。pprof工具:常用于分析资源的使用情况,可以采集程序运行时的多种不同类型的数据(例如CPU占用、内存消耗和协程数量等),并对数据进行分析聚合生成的报告。trace工具:则关注程序运行时的事件(例如协程状态切换,GC的开始和结束、系统调用等等),常用于分析延迟、阻塞和调度等问题。pprof工
golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)
2401_86638887
golang 学习 笔记
go-glexamplego-gl的示例代码二.基础概念这里涉及到的概念在之前的文章里基本上都有过介绍,不再赘述。不过大家有兴趣可以去看一看碰撞检测的一些算法实现三.依赖没有新增任何依赖四.资源准备我们创建的游戏世界里有两个地方需要用到纹理资源(贴图),一是组成世界的方块、二是游戏主角。由于方块是静态的,不需要动画效果,所以只需要一张贴图就可以了。而游戏主角则需要多张纹理图像来组成运动时的动画。要
golang坐标转换 gomap3d库
研志必有功
golang 坐标转换 天文
gomap3dGo语言实现的多坐标系转换库,支持天文学/航天领域常用坐标系转换gomap3d特性支持7种坐标系互转:站心坐标系(AER)东北天坐标系(ENU)地心地固坐标系(ECEF)地心惯性坐标系(ECI)大地坐标系(WGS84)支持多种参考椭球体:WGS-84CGCS2000月球火星精确天文计算:儒略日计算格林威治恒星时ECI/ECEF时变转换安装gogetgithub.com/PingPon
Python SQLite3 保姆级教程:从零开始学数据库操作
老哥不老
数据库 python sqlite
PythonSQLite3保姆级教程:从零开始学数据库操作本文适合纯新手!无需任何数据库基础,跟着步骤操作即可掌握SQLite3的核心用法。目标:让你像用记事本一样轻松操作数据库!目录什么是SQLite3?环境准备连接数据库创建表增删改查(CRUD)事务与错误处理高级技巧常见问题总结1.什么是SQLite3?SQLite3是一个轻量级的嵌入式数据库,无需安装独立服务,所有数据存储在一个文件中。✅无
Golang学习笔记_47——访问者模式
LuckyLay
Golang学习笔记 golang 学习 笔记 设计模式 访问者模式
Golang学习笔记_44——命令模式Golang学习笔记_45——备忘录模式Golang学习笔记_46——状态模式文章目录一、核心概念1.定义2.解决的问题3.核心角色4.类图二、特点分析三、适用场景1.编译器实现2.财务系统3.UI组件系统四、Go语言实现示例完整实现代码执行结果五、高级应用1.异步访问者2.动态派发优化六、与其他模式对比七、实现建议八、典型应用一、核心概念1.定义访问者模式是
Nginx 代理 Redis 实现通过域名连接数据库
逢生博客
数据库 nginx redis
文章目录Nginx模块介绍Stream模块配置Redis配置文件连接RedisNginx、Redis安装这里不做介绍。域名默认已经解析到服务器公网IP。Nginx模块介绍HTTP模块:HTTP模块提供了处理HTTP请求的功能,包括反向代理、负载均衡、缓存、HTTP代理等。例如:proxy模块用于反向代理和负载均衡,fastcgi模块用于处理FastCGI请求。Stream模块:Stream模块用于
【Gee-Web框架】【Day6】【Golang】模板Template
行者无疆xcc
GeeWeb 前端 golang 开发语言
实现静态资源服务StaticResource支持HTML模板渲染一、服务端渲染1.简要说明前后端分离的开发模式,web后端提供RESTful接口,返回结构化的数据(通常是JSON或者XML),前端使用AJAX技术请求到所需的数据,利用JavaScript进行渲染。Vue/React等前端框架火热,优势突出后端专注解决资源利用、并发、数据库等问题,只需考虑数据如何生成前端专注界面设计实现,只需要考虑
Nginx给Vue和Java后端做代理
入职啦
实战项目知识 vue.js nginx java
本文发表于入职啦(公众号:ruzhila)可以访问入职啦查看更多技术文章网站架构入职啦采用了Nuxt.js、Vue3、Go的混合架构开发,包括了官网、简历工具、职位搜索、简历搜索等功能。为三个部分:官网:采用Nuxt.js+Vue3+TailwindCSS开发,属于SSR渲染简历工具:采用Vue3+TailwindCSS开发,属于SPA渲染后端:采用Gin+Gorm+MySQL开发,提供API接口
Go语言学习路线
沉默的八哥
运维 golang 学习 java
以下是一个较为系统的Go语言学习路线:一、基础阶段环境搭建与工具链熟悉安装Go语言开发环境。在Go官方网站(https://golang.org/dl/)下载适合您操作系统的安装包并完成安装。配置Go环境变量,如GOPATH和GOROOT。GOROOT是Go语言的安装目录,GOPATH是工作空间目录,用于存放Go项目的源代码、编译后的二进制文件和依赖包等。学习使用Go命令行工具,如gobuild(
linux | Vim 命令快捷操作
斐夷所非
Linux linux Vim
注:本文为过去的“vim使用笔记”。跳转命令跳转命令#:向前查找光标当前所在单词,并跳转到该单词的上一个出现位置。*:向后查找光标当前所在单词,并跳转到该单词的下一个出现位置。行内跳转0:跳转到当前行的行首。[Home]$:跳转到当前行的行尾。[End]^:跳转到当前行的第一个非空字符处。g_:跳转到行尾最后一个非空白字符。|n:跳转到当前行的第n列(例如:|10跳转到第10列)。文件内跳转gg:
【新人系列】Golang 入门(三):条件循环
Pandaconda 的测开之路
# Golang 新人系列 golang 开发语言 后端 go 条件循环 面试 笔记
✍个人博客:https://blog.csdn.net/Newin2020?type=blog专栏地址:https://blog.csdn.net/newin2020/category_12898955.html专栏定位:为0基础刚入门Golang的小伙伴提供详细的讲解,也欢迎大佬们一起交流~专栏简介:在这个专栏,我将带着大家从0开始入门Golang的学习。在这个Golang的新人系列专栏下,将会
golang反射基本操作
qq_37280513
golang 开发语言 后端
一、interface{}解析golang中的interface类型,底层是有T和V两个变量实现的,T代表类型,V代表真正的值用下面的例子来加深理解:varx*stringvardinterface{}d=xfmt.Println(d==x)//truefmt.Println(x==nil)//truefmt.Println(d==nil)//false解析:d==x,由于和*string比较,直
golang接口
产幻少年
golang golang
1.类和接口typeClassNamestruct{}typeInterfaceNameinterface{}结构体类型是值类型,接口类型是引用类型。interface{}类型的变量可以存储任何类型的值。我们使用interface.(type)来检查interface存储的值的实际类型,并根据类型执行不同的操作。typeMyTypestruct{Valueint}varclientinterfac
Golang 反射
不7夜宵
基础知识 开发语言 后端 golang
一、Go反射的应用场景(一)对象序列化和反序列化场景描述在处理网络通信,数据存储等场景中,需要将对象转换为字节流(序列化)以便传输或存储,在接收端再将字节流转换回对象(反序列化)。反射可以在不知道对象具体结构的情况下,遍历对象的字段进行序列化和反序列化操作。优势灵活性高,能够处理各种不同类型的对象,而不需要为每个类型单独编写序列化和反序列化函数(二)框架开发场景描述例如在Web框架中,需要根据用户
golang反射
产幻少年
golang go
https://www.bilibili.com/video/BV1gf4y1r79E?p=23reflect包反射的作用:在运行时检查数据的类型和值核心函数reflect.TypeOf:获取一个值的类型reflect.ValueOf:获取它的值reflect.New:创建一个指向该类型的新指针。也就是说,为传入的类型分配内存,并返回一个指向该内存的指针的反射值。读取结构体字段,field就是成员
Golang面经
电竞杰森斯坦森
Golang golang 面试 开发语言
一、基础1.make与new的区别相同点:都是给变量分配内存不同点:作用变量类型不同,new给string,int,bool等分配内存,make给切片,map,channel分配内存;返回类型不一样,new返回指向变量的指针,make返回变量本身;new分配的空间被初始化为零值。make分配空间后会进行初始化(切片会被初始化为空切片、map会被初始化为空map、channel会被初始化为带有指定容
利用golang embed特性嵌入前端资源问题解决
Iam0x17
golang 前端
embed嵌入前端资源,配置前端路由的代码如下funcStartHttpService(portstring,assetsFsembed.FS)error{//r:=gin.Default()gin.SetMode(gin.ReleaseMode)r:=gin.New()r.Use(CORSMiddleware())//静态文件服务dist,err:=fs.Sub(assetsFs,"assets
Golang 编码规范
云满笔记
golang golang
这里写目录标题1.Golang编码规范1.1.gofmt1.2.注释1.2.1.包注释1.2.2.可导出类型1.3.命名1.3.1.包名1.3.2.接口名1.3.3.混合大小写1.3.4.变量1.4.控制结构1.4.1.if1.4.2.for1.4.3.range1.4.4.return1.5.函数(必须)1.6.错误处理1.7.panic1.8.import1.9.缩写1.9.1.采用全部大写或
【编程实践】Golang 生成PDF
AI天才研究院
Golang实战 golang pdf 开发语言
Golang生成PDF一个简单但是非常实用的pdf生成器!安装:gogetgithub.com/jung-kurt/gofpdf代码:packagemainimport("github.com/jung-kurt/gofpdf")funcmain(){err:=GeneratePdf("hello.pdf")iferr!=nil{panic(err)}}//GeneratePdfgenerates
面向对象面向过程
3213213333332132
java
面向对象:把要完成的一件事,通过对象间的协作实现。
面向过程:把要完成的一件事,通过循序依次调用各个模块实现。
我把大象装进冰箱这件事为例,用面向对象和面向过程实现,都是用java代码完成。
1、面向对象
package bigDemo.ObjectOriented;
/**
* 大象类
*
* @Description
* @author FuJian
Java Hotspot: Remove the Permanent Generation
bookjovi
HotSpot
openjdk上关于hotspot将移除永久带的描述非常详细,http://openjdk.java.net/jeps/122
JEP 122: Remove the Permanent Generation
Author Jon Masamitsu
Organization Oracle
Created 2010/8/15
Updated 2011/
正则表达式向前查找向后查找,环绕或零宽断言
dcj3sjt126com
正则表达式
向前查找和向后查找
1. 向前查找:根据要匹配的字符序列后面存在一个特定的字符序列(肯定式向前查找)或不存在一个特定的序列(否定式向前查找)来决定是否匹配。.NET将向前查找称之为零宽度向前查找断言。
对于向前查找,出现在指定项之后的字符序列不会被正则表达式引擎返回。
2. 向后查找:一个要匹配的字符序列前面有或者没有指定的
BaseDao
171815164
seda
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class BaseDao {
public Conn
Ant标签详解--Java命令
g21121
Java命令
这一篇主要介绍与java相关标签的使用 终于开始重头戏了,Java部分是我们关注的重点也是项目中用处最多的部分。
1
[简单]代码片段_电梯数字排列
53873039oycg
代码
今天看电梯数字排列是9 18 26这样呈倒N排列的,写了个类似的打印例子,如下:
import java.util.Arrays;
public class 电梯数字排列_S3_Test {
public static void main(S
Hessian原理
云端月影
hessian原理
Hessian 原理分析
一. 远程通讯协议的基本原理
网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http 、 tcp 、 udp 等等, http 、 tcp 、 udp 都是在基于 Socket 概念上为某类应用场景而扩展出的传输协
区分Activity的四种加载模式----以及Intent的setFlags
aijuans
android
在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。
这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。 加载模式分类及在哪里配置
Activity有四种加载模式:
standard
singleTop
hibernate几个核心API及其查询分析
antonyup_2006
html .net Hibernate xml 配置管理
(一) org.hibernate.cfg.Configuration类
读取配置文件并创建唯一的SessionFactory对象.(一般,程序初始化hibernate时创建.)
Configuration co
PL/SQL的流程控制
百合不是茶
oracle PL/SQL编程 循环控制
PL/SQL也是一门高级语言,所以流程控制是必须要有的,oracle数据库的pl/sql比sqlserver数据库要难,很多pl/sql中有的sqlserver里面没有
流程控制;
分支语句 if 条件 then 结果 else 结果 end if ;
条件语句 case when 条件 then 结果;
循环语句 loop
强大的Mockito测试框架
bijian1013
mockito 单元测试
一.自动生成Mock类 在需要Mock的属性上标记@Mock注解,然后@RunWith中配置Mockito的TestRunner或者在setUp()方法中显示调用MockitoAnnotations.initMocks(this);生成Mock类即可。二.自动注入Mock类到被测试类 &nbs
精通Oracle10编程SQL(11)开发子程序
bijian1013
oracle 数据库 plsql
/*
*开发子程序
*/
--子程序目是指被命名的PL/SQL块,这种块可以带有参数,可以在不同应用程序中多次调用
--PL/SQL有两种类型的子程序:过程和函数
--开发过程
--建立过程:不带任何参数
CREATE OR REPLACE PROCEDURE out_time
IS
BEGIN
DBMS_OUTPUT.put_line(systimestamp);
E
【EhCache一】EhCache版Hello World
bit1129
Hello world
本篇是EhCache系列的第一篇,总体介绍使用EhCache缓存进行CRUD的API的基本使用,更细节的内容包括EhCache源代码和设计、实现原理在接下来的文章中进行介绍
环境准备
1.新建Maven项目
2.添加EhCache的Maven依赖
<dependency>
<groupId>ne
学习EJB3基础知识笔记
白糖_
bean Hibernate jboss webservice ejb
最近项目进入系统测试阶段,全赖袁大虾领导有力,保持一周零bug记录,这也让自己腾出不少时间补充知识。花了两天时间把“传智播客EJB3.0”看完了,EJB基本的知识也有些了解,在这记录下EJB的部分知识,以供自己以后复习使用。
EJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序。EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基
angular.bootstrap
boyitech
AngularJS AngularJS API angular中文api
angular.bootstrap
描述:
手动初始化angular。
这个函数会自动检测创建的module有没有被加载多次,如果有则会在浏览器的控制台打出警告日志,并且不会再次加载。这样可以避免在程序运行过程中许多奇怪的问题发生。
使用方法: angular .
java-谷歌面试题-给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数
bylijinnan
java
public class SearchInShiftedArray {
/**
* 题目:给定一个固定长度的数组,将递增整数序列写入这个数组。当写到数组尾部时,返回数组开始重新写,并覆盖先前写过的数。
* 请在这个特殊数组中找出给定的整数。
* 解答:
* 其实就是“旋转数组”。旋转数组的最小元素见http://bylijinnan.iteye.com/bl
天使还是魔鬼?都是我们制造
ducklsl
生活 教育 情感
----------------------------剧透请原谅,有兴趣的朋友可以自己看看电影,互相讨论哦!!!
从厦门回来的动车上,无意中瞟到了书中推荐的几部关于儿童的电影。当然,这几部电影可能会另大家失望,并不是类似小鬼当家的电影,而是关于“坏小孩”的电影!
自己挑了两部先看了看,但是发现看完之后,心里久久不能平
[机器智能与生物]研究生物智能的问题
comsci
生物
我想,人的神经网络和苍蝇的神经网络,并没有本质的区别...就是大规模拓扑系统和中小规模拓扑分析的区别....
但是,如果去研究活体人类的神经网络和脑系统,可能会受到一些法律和道德方面的限制,而且研究结果也不一定可靠,那么希望从事生物神经网络研究的朋友,不如把
获取Android Device的信息
dai_lm
android
String phoneInfo = "PRODUCT: " + android.os.Build.PRODUCT;
phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;
phoneInfo += ", TAGS: " + android.os.Build.TAGS;
ph
最佳字符串匹配算法(Damerau-Levenshtein距离算法)的Java实现
datamachine
java 算法 字符串匹配
原文:http://www.javacodegeeks.com/2013/11/java-implementation-of-optimal-string-alignment.html------------------------------------------------------------------------------------------------------------
小学5年级英语单词背诵第一课
dcj3sjt126com
english word
long 长的
show 给...看,出示
mouth 口,嘴
write 写
use 用,使用
take 拿,带来
hand 手
clever 聪明的
often 经常
wash 洗
slow 慢的
house 房子
water 水
clean 清洁的
supper 晚餐
out 在外
face 脸,
macvim的使用实战
dcj3sjt126com
mac vim
macvim用的是mac里面的vim, 只不过是一个GUI的APP, 相当于一个壳
1. 下载macvim
https://code.google.com/p/macvim/
2. 了解macvim
:h vim的使用帮助信息
:h macvim
java二分法查找
蕃薯耀
java二分法查找 二分法 java二分法
java二分法查找
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 11:40:03 星期二
http:/
Spring Cache注解+Memcached
hanqunfeng
spring memcached
Spring3.1 Cache注解
依赖jar包:
<!-- simple-spring-memcached -->
<dependency>
<groupId>com.google.code.simple-spring-memcached</groupId>
<artifactId>simple-s
apache commons io包快速入门
jackyrong
apache commons
原文参考
http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html
Apache Commons IO 包绝对是好东西,地址在http://commons.apache.org/proper/commons-io/,下面用例子分别介绍:
1) 工具类
2
如何学习编程
lampcy
java 编程 C++ c
首先,我想说一下学习思想.学编程其实跟网络游戏有着类似的效果.开始的时候,你会对那些代码,函数等产生很大的兴趣,尤其是刚接触编程的人,刚学习第一种语言的人.可是,当你一步步深入的时候,你会发现你没有了以前那种斗志.就好象你在玩韩国泡菜网游似的,玩到一定程度,每天就是练级练级,完全是一个想冲到高级别的意志力在支持着你.而学编程就更难了,学了两个月后,总是觉得你好象全都学会了,却又什么都做不了,又没有
架构师之spring-----spring3.0新特性的bean加载控制@DependsOn和@Lazy
nannan408
Spring3
1.前言。
如题。
2.描述。
@DependsOn用于强制初始化其他Bean。可以修饰Bean类或方法,使用该Annotation时可以指定一个字符串数组作为参数,每个数组元素对应于一个强制初始化的Bean。
@DependsOn({"steelAxe","abc"})
@Comp
Spring4+quartz2的配置和代码方式调度
Everyday都不同
代码 配置 spring4 quartz2.x 定时任务
前言:这些天简直被quartz虐哭。。因为quartz 2.x版本相比quartz1.x版本的API改动太多,所以,只好自己去查阅底层API……
quartz定时任务必须搞清楚几个概念:
JobDetail——处理类
Trigger——触发器,指定触发时间,必须要有JobDetail属性,即触发对象
Scheduler——调度器,组织处理类和触发器,配置方式一般只需指定触发
Hibernate入门
tntxia
Hibernate
前言
使用面向对象的语言和关系型的数据库,开发起来很繁琐,费时。由于现在流行的数据库都不面向对象。Hibernate 是一个Java的ORM(Object/Relational Mapping)解决方案。
Hibernte不仅关心把Java对象对应到数据库的表中,而且提供了请求和检索的方法。简化了手工进行JDBC操作的流程。
如
Math类
xiaoxing598
Math
一、Java中的数字(Math)类是final类,不可继承。
1、常数 PI:double圆周率 E:double自然对数
2、截取(注意方法的返回类型) double ceil(double d) 返回不小于d的最小整数 double floor(double d) 返回不大于d的整最大数 int round(float f) 返回四舍五入后的整数 long round